一、创建maven项目,名为test-parent,pom文件如下:
1 ... 2 <artifactId>test-parent</artifactId> 3 <version>0.0.1-SNAPSHOT</version> 4 <packaging>pom</packaging><!--这个值默认是jar,一般不专门定义。这里值是pom,这个项目里只有一个pom文件--> 5 ... 6 <properties><!--这里定义<depencies>引入的jar的版本值--> 7 <drools.version>7.1.0.Final</drools.version> 8 <springloaded.version>1.2.6.RELEASE</springloaded.version> 9 <axis.version>1.4</axis.version> 10 <axis-jaxrpc.version>1.2.1</axis-jaxrpc.version> 11 </properties> 12 ... 13 <repositories><!--这里定义私服地址--> 14 ... 15 </repositories> 16 ... 17 <dependencies> 18 <dependency> 19 <groupId>org.drools</groupId><!--ctrl+单击可以查看jar包的pom文件--> 20 <artifactId>drools-bom</artifactId> 21 <type>pom</type> 22 <version>${drools.version}</version><!--这里的值在上面<properties>中定义--> 23 <scope>import</scope> 24 </dependency> 25 ... 26 </dependencies> 27 ...
test-parent用于统一管理jar包的版本、私服地址。
分布式开发的多个模块,引用的同一个jar,最好统一一个版本,所以版本放在parent中维护。防止版本太多造成jar包冲突。
二、建公用vo项目和arch项目
公用vo项目 test-common-vo:存放分布式开发的其他项目会用到的vo对象,或者公用vo对象。pom.xml:
1 ... 2 <parent><!--设置parent为test-parent项目,继承它的pom配置--> 3 <groupId>com.test</groupId> 4 <artifactId>test-parent</artifactId> 5 <version>0.0.1-SNAPSHOT</version> 6 </parent> 7 <artifactId>test-common-vo</artifactId> 8 ... 9 <depencies><!--用到的jar包即使parent项目有,这里仍然需要配置才能引入--> 10 ... 11 </depencies>
公用arch项目存放公用的方法,比如feign调用其他模块的方法
将这两个项目package或者deploy打包放到私服上,在parent项目的pom中引入:
1 ... 2 <dependency> 3 <groupId>com.test</groupId> 4 <artifactId>test-common-vo</artifactId> 5 <version>${test-common-vo.version}</version> 6 </dependency> 7 <groupId>com.test</groupId> 8 <artifactId>test-common-arch</artifactId> 9 <version>${test-common-arch.version}</version> 10 </dependency> 11 ...
三、业务模块的项目test-yeWu-server
业务模块的pom配置parent:
1 ... 2 <parent><!--配parent--> 3 <groupId>com.test</groupId> 4 <artifactId>test-parent</artifactId> 5 <version>0.0.1-SNAPSHOT</version> 6 </parent> 7 <dependency><!--引入公用--> 8 <groupId>com.test</groupId> 9 <artifactId>test-common-arch</artifactId> 10 </dependency> 11 <!--如果需要vo的话引入--> 12 <dependency><!--引入公用--> 13 <groupId>com.test</groupId> 14 <artifactId>test-common-vo</artifactId> 15 </dependency> 16 ...