Maven聚合项目deploy指定module

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里加上这个配置即可。

posted @ 2020-03-12 09:31  leeyazhou  阅读(3650)  评论(0编辑  收藏  举报