java - maven 怎么控制被依赖工程的默认打包
怪我咯
怪我咯 2017-04-18 09:19:44
[Java讨论组]

我有一个工程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工程

怪我咯
怪我咯

走同样的路,发现不同的人生

全部回复(2)
PHPz

这里面牵涉到几个问题:
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模块化开发.

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号