我一直都是这样的创建项目,先创建一个maven项目(父工程,packaging时选择pom)
然后在这个父工程上创建子模块
最后创建完多个子模块(service dao等等)
但是这种创建项目的缺点是,如果你的项目很大,会把所有的controller放到一个子模块,service放到一个子模块。这样不利于拆分。
例如:你做的是一个学校系统,那么这个系统可能包含以下几项;教学计划,招生等等(还有许多,我就不举例了),那么我想按这些模块划分,一个模块是一个项目,这就与上面说的有偏差,那么怎么办呢?
1.先创建一个父工程(上面有图)
2.在这个父工程下面创建两个子父工程(方法是一样的),分别为recruit和teachplan。
3.在recruit父工程上创建maven web项目,就是controller,也在创建maven 项目,就是service,同样在teachplan也是一样操作。
4.这样创建完,那么在打war包时,一个web项目时一个war包,所以这个项目只能打成两个war包。
如果想在recruit打包时,把teachplan也打包进去,那么在recruit的controller项目中的pom.xml中添加如下代码(你们的项目可能都引了这个maven-war-plugin插件了,那么就只需要在configuration添加项目的groupId 和artifactId,对于我们这个项目来说就是添加teachplan的controller项目的groupId 和artifactId):
<build>
<defaultGoal>compile</defaultGoal>
<sourceDirectory>src/main/java</sourceDirectory>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.6</version>
<configuration>
<overlays>
<!-- 模块war1 -->
<overlay>
<groupId>com.XXX</groupId>
<artifactId>XXX-controller</artifactId>
</overlay>
<!-- 模块war2 -->
<overlay>
<groupId>com.YYYY</groupId>
<artifactId>YYYY-controller</artifactId>
</overlay>
</overlays>
</configuration>
</plugin>
</plugins>
</build>
5.以上完成后并不好用,还是不能打成一个war包。还差最后一步,在recruit的controller项目中pom.xml中添加teachplan的controller项目的依赖(
<dependency> <groupId>com.tang</groupId> <artifactId>graduate-controller</artifactId> <version>1.0.0</version> <type>war</type> </dependency>
)
---------------------------------------------------------
完成以上步骤后,这个再打包recruit的controller包时就会把teachplan的controller也打包进去了。
最后一句话:这两个项目所用的配置文件是以recruit为准的。
好了,写的很乱,就是自己的一个记录。以防自己忘了。