我有以下Maven组织:
- ./pom.xml (top-level project, which defines the 4 modules below)
- ./a/pom.xml (jar)
- ./b/pom.xml (jar)
- ./c/pom.xml (war)
- ./d/pom.xml (war)
到目前为止,我一直在使用Maven(所有在root中执行):
1. mvn clean compile install
2. mvn tomcat7:redeploy -pl c
3. mvn tomcat7:redeploy -pl d
虽然这很有效,但我不确定这是否是首选方式。在第一步中,我正在安装所有项目,但实际上,只应安装jar项目a
和b
。无需安装c
和d
项目。
尽管安装c
和d
并没有什么坏处,但为了避免这种情况,是否可以更好地使用Maven?我总是可以手动安装a
和b
,但是这一点可以证明模块的好处(自动检测依赖顺序,命名一个好处)。
答案 0 :(得分:1)
compile
和install
都是默认生命周期的一部分,因此无需拨打compile
。如果依赖项是反应堆的一部分(即正在构建的所有maven项目),则您不需要install
个文件。相反,package
已经足够了,但如果有集成测试,我更喜欢verify
。
您也可以这样做:mvn verify tomcat7:redeploy -pl c -am
,其中-am
触发构建c所需的多模块项目的项目。