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