Maven的SDK模块,如果继承了父POM,那么部署SDK时,需要先Deploy父POM。
如果直接在父模块下执行Deploy命令(mvn clean package -Dmaven.test.skip deploy 或通过IEDA-Maven插件部署时,默认会把所有模块都发布到仓库,为了不部署额外的模块,处理方案有几种。
方案一
采用maven的-N参数,如下命令进行发布
mvn clean package deploy -Dmaven.test.skip=true -Drepository:snapshots -N
上述命令在父项目的根目录下进行执行,即可将父项目的pom发布到私服上。
mvn参数-N –non-recursive Do not recurse into sub-projects,意思是,不递归到子项目(子模块)。
一个父项目下Father面有3个子项目A、B、C,都生成jar包,则有Father.jar、A.jar、B.jar、C.jar;此时A项目依赖了B、C项目,如果使用mvn clean install -N,则只会把Father.jar安装到本地仓库(~/.m2/repository),而不会安装其他三个包。
方案二
通过 maven-deploy-plugin 插件的参数来控制:
<properties>
<maven.deploy.skip>true</maven.deploy.skip>
</properties>