Jenkins 部署后端maven项目

发布时间 2023-11-04 19:25:23作者: 之辰

Jenkins 部署后端maven项目

多模块maven项目构建,部署其中一个模块

假设现在maven项目 parent 架构为,项目packing类型前面就是项目名:

+- parent
|  +- gateway:jar
|  +- user:jar
|  +- oauth:pom
|  |  \- oauth-common:pom
|  |  \- oauth-service:jar
|  +- common:pom
|  |  \- api-common:pom
|  |  \- file-common:pom
# common 是被所有 jar项目依赖的

此时我只想构建 oauth-service 项目,这种问题解决方案跟maven有关系,在网上搜到的而且本人正在使用的命令如下:

mvn -Dmaven.repo.local=/usr/local/tool/apache-maven-3.9.5/repo -DskipTests=true -pl com.parent:oauth-service -am clean package

命令参数解释:

-Dmaven.repo.local=/usr/local/tool/apache-maven-3.9.5/repo: 这个主要是用来指定maven构建项目使用的依赖地址,如果你想每次构建都从远程仓库拉取依赖的话可以去除。

-DskipTests=true:去除单元测试。单元测试构建很消耗时间,我自己的项目不需要用单元测试验证什么,所以剔除了。

-pl com.parent:oauth-service:-pl <project> 指定项目构建,project 路径是相对路径。可以通过/或者:来指定。

  • /:如果是这种,那么此时的命令应该是 -pl oauth/oauth-service,解释:是当前模块相对于整个项目也就是 parent 的相对路径
  • :::如果是这种,那么此时的命令应该是 -pl com.parent:oauth-service,解释:pom文件parent标签的groupId:当前模块的artifactId也就是打包之后的名字

-am:需要配合 -pl 使用 ,表示构建当前模块所依赖到的模块,不会构建当前项目所有模块,向上。

以上含义是个人理解,可能不太符合原义