首页 > maven 怎么控制被依赖工程的默认打包

maven 怎么控制被依赖工程的默认打包

我有一个工程A依赖工程B 工程A是要打war包的,工程B打jar包, 并且在工程B打包的时候我有三套环境分别是1,2,3,通过maven clean package -P 1 这样的方式来切换环境(工程A也有和B相同prefix的三套环境,切换方式和B一样),,想要的效果是切换工程A的环境工程B的环境一样切换,,,现在问题是,切换工程A的环境工程B的环境不变,这怎么解决??

<dependency>
<groupId>com.xx.xxx</groupId>
<artifactId>xxxx</artifactId>
<version>${project.version}</version>
<type>jar</type>
<classifier>classes</classifier>
</dependency>

A工程中是以这种方式依赖的B工程


这里面牵涉到几个问题:
1、首先你应该需要一个工程C,然后将这两个工程(A,B)分别作为C工程的一个子模块(详见<module>元素)。
2、当maven构建C的时候,会根据C的POM中的子模块构建反应堆,并依据子模块(A、B)间的依赖关系决定子模块的构建次序。在你这里就能够达到你想要的目的,即构建C的时候会将A、B同时构建出来。(C的<packaging>写成pom即可)
3、如果没记错的话,<profile>并没有在maven的继承元素集中。所以不管是A、B都是需要单独写<profile>
4、一般来说建议是C文件夹下面放A、B,当然其他路径存放形式也可以,但是要注意路径。

以上。


可以创建一个maven-parent, 把A,B工程放在一起, 同时把相同的Profile配置放在Parent的pom.xml文件中, 那么此时你去打包A工程时, Maven会自动检索依赖和Profile条件, 最后把B.JAR打包到A.war文件里面. 可网络搜索一下Maven模块化开发.

【热门文章】
【热门文章】