如果我们有许多Maven工程需要编译,如果一个个敲命令怕要累死,写批处理又有点不太正规,幸好Maven采用了Module节点解决了我们的问题,可以通过一次命令编译打包所有的包.
下图中的MavenA和MavenB是两个需要编译打包的工程,MavenModules是它们的上级工程.
MavenA和MavenB的pom.xml一点也不需要改变,而MavenModules中的pom.xml如下:
<
project
xmlns
="http://maven.apache.org/POM/4.0.0"
xmlns:xsi
="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation ="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd" >
< modelVersion > 4.0.0 </ modelVersion >
< groupId > com.sitinspring </ groupId >
< artifactId > MavenModules </ artifactId >
< packaging > pom </ packaging >
< version > 1.0.0 </ version >
< name > MavenModules </ name >
< url > http://www.blogjava.net/sitinspring </ url >
< modules >
< module > ModuleA </ module >
< module > ModuleB </ module >
</ modules >
</ project >
xsi:schemaLocation ="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd" >
< modelVersion > 4.0.0 </ modelVersion >
< groupId > com.sitinspring </ groupId >
< artifactId > MavenModules </ artifactId >
< packaging > pom </ packaging >
< version > 1.0.0 </ version >
< name > MavenModules </ name >
< url > http://www.blogjava.net/sitinspring </ url >
< modules >
< module > ModuleA </ module >
< module > ModuleB </ module >
</ modules >
</ project >
通过观察可以发现,有两点不同:
1.package节点设定为pom而不是jar,war等,这是主工程必需的,否则执行命令必报错.
2.添加了modules节点和其下的两个module节点,节点名正好是子目录,这样在MavenModules目录下执行compile,package等命令就会深入子目录去继续执行.
挺简单的,基本就是这么多.