使用maven建立父子结构的分布式项目

来源:互联网 发布:新百伦淘宝官方旗舰店 编辑:程序博客网 时间:2024/05/20 11:48
一、新建一个普通maven project做为父项目
删除掉所有文件、文件夹和库,只留下pom.xml
修改pom.xml文件,把pacakage改成pom
<packaging>pom</packaging>
修改pom.xml文件后,项目上有错的话,可以试试右击maven》update project。


二、新建maven module
打开pom.xml的overview方式,点击create




三、第一次打包时要用父项目的pom.xml打包。多个子项目分开打包时一定要按依赖关系的顺序打包。

四、maven开发分布式项目
ch-zdemo-dubbo-app打包成jar部署到应用服务器,
ch-zdemo-dubbo-web打包成war部署到web服务器,

ch-zdemo-dubbo-service公共业务层接口

ch-zdemo-dubbo-bean公共实体类包
ch-zdemo-dubbo-common其它公共类包
ch-zdemo-dubbo-core公共核心包
ch-zdemo-dubbo-mapper公共持久层接口包
ch-zdemo-dubbo-utils公共工具类包

其中ch-zdemo-dubbo-app需要打包成jar部署到应用服务器,在app项目的pom.xml里加上使用打包插件,把所有的依赖的jar都打包进来,配置如下:
<build><resources><resource><directory>src/main/java</directory><includes><include>**/*.properties</include><include>**/*.xml</include><!-- 主要是mapper.xml文件 --></includes></resource><resource><directory>src/main/resources</directory><!-- 配置文件 --></resource></resources><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><version>3.6.1</version><configuration><source>1.7</source><!-- 源代码使用的开发版本 --><target>1.7</target><!-- 需要生成的目标class文件的编译版本 --></configuration></plugin><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-shade-plugin</artifactId><version>3.0.0</version><executions><execution><phase>package</phase><goals><goal>shade</goal></goals><configuration><transformers><transformerimplementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer"><mainClass>com.chhuang.application.App</mainClass><!-- 带main方法的类 --></transformer><!-- 以添加的方式写入spring.handlers和spring.schemas --><transformerimplementation="org.apache.maven.plugins.shade.resource.AppendingTransformer"><resource>META-INF/spring.handlers</resource></transformer><transformerimplementation="org.apache.maven.plugins.shade.resource.AppendingTransformer"><resource>META-INF/spring.schemas</resource></transformer></transformers><filters><!-- 过滤掉多余的.SF .DSA .RSA文件 --><filter><artifact>*:*</artifact><excludes><exclude>META-INF/*.SF</exclude><exclude>META-INF/*.DSA</exclude><exclude>META-INF/*.RSA</exclude></excludes></filter></filters></configuration></execution></executions></plugin></plugins><finalName>ch-zdemo-dubbo-app</finalName></build>


配置完pom后,调用mvn clean install命令进行构建,构建成功后打开工程target目录,发现生成了2个jar包,一个为:original-XXX.jar,另一个为:XXX.jar,其中original.jar里只包含了工程自己的class文件,而另外的一个jar包则包含了工程本身以及所有依赖的jar包的class文件。我们只需要使用第二个jar包就可以了。
3 0
原创粉丝点击