Maven聚合项目deploy指定module
无论是开源软件,还是在团队合作工程中,不可避免地会需要deploy maven组件到maven仓库的情况,把我们开发的maven组件提供给别人使用。在公司内部时,一般都有自己的maven仓库,当我们需要发布组件的时候,执行发布命令即可把组件发布到maven私服供其他项目使用。
deploy命令
mvn deploy
说明
当我们开发了聚合maven项目,但是我们只希望把其中的部分项目(例如API接口定义)发布到maven仓库,其他例如实现部分的代码(包含了敏感信息如密码)不能发布到maven仓库。
例如,这是一个示例的maven聚合项目结构,showcase-api需要发布到maven仓库,showcas-service和showcase-app不能发布到maven仓库,因为里面包含应用的配置信息和密码信息等等。
showcase
├── showcase-api
├── showcase-domain
├── showcase-service
├── showcase-app
问题
- 如果直接deploy项目showcase-api的话,会提示showcase不存在,因为它的父项目在maven仓库中不存在。
- 直接发布showcase的话,又回把showcase和它的子项目都发布到maven仓库
解决方案
这种情况,我们只需要在不能发布到maven仓库的项目的pom.xml文件里加上一个属性即可:
<properties>
<maven.deploy.skip>true</maven.deploy.skip>
</properties>
这个示例中,我们需要在showcase-service和showcase-app的pom.xml里加上这个配置即可。