1

我是 maven 和 Jenkins 的新手,所以我不知道在同一个 Jenkins 作业中提取 maven 构建的 JAR 文件的最常见方法是什么。

mvn install在 Jenkins 作业中运行会输出文件/home/user/.jenkins/workspace/$JOB_NAME/project/target/package-2.0.0.jar

我想将它提取到某个目录,例如/opt/project并调用/opt/project/script.sh.

我想到了一个构建后的 shell 脚本调用jar -xvf <path>/package-2.0.0.jar但是如何获取版本号(2.0.0)呢?也许有一个行家目标来做到这一点?

4

2 回答 2

2

将该工件定义为其他模块(将运行 shell 脚本的模块)中的依赖项,并使用依赖项插件将其解压缩

这意味着您的 maven 项目中(至少)有 2 个模块 - 一个生成 jar,另一个对第一个生成的工件执行某些操作。

如果这不符合您的需要,您可以在安装阶段之后绑定解包(工件在安装阶段将其放入本地存储库,并且依赖插件仅处理来自本地存储库的工件)并在那里执行。

如果您仍然不满意,您可以在 maven pom.xml 文件中使用${project.build.finalName}. 默认值${artifactId}-${version}如您在此处看到的那样(查看超级 pom)。如果你需要它的后缀它会是这样的${artifactId}-${version}.${packaging}

于 2013-01-07T11:14:00.373 回答
1

if you are running on linux based systems something like

jar -xvf `ls <path>/package-*.jar`

will do the job.

于 2013-01-07T14:29:32.893 回答