【问题标题】:Why my maven package triggered by Jenkins failed but can be success if I manually execute it?为什么我的 Jenkins 触发的 maven 包失败,但如果我手动执行它可以成功?
【发布时间】:2017-12-02 10:27:21
【问题描述】:

我有一份 jenkins 工作,倾向于使用 maven 构建我的 java 应用程序,但它在编译阶段总是失败。

[[1;34mINFO[m] Changes detected - recompiling the module!
[[1;34mINFO[m] Compiling 550 source files to /var/lib/jenkins/workspace/test/target/classes
[[1;34mINFO[m] [1m------------------------------------------------------------------------[m
[[1;34mINFO[m] [1;31mBUILD FAILURE[m
[[1;34mINFO[m] [1m------------------------------------------------------------------------[m
[[1;34mINFO[m] Total time: 9.575 s
[[1;34mINFO[m] Finished at: 2017-12-02T07:47:47+08:00
[[1;34mINFO[m] Final Memory: 24M/346M
[[1;34mINFO[m] [1m------------------------------------------------------------------------[m
[[1;33mWARNING[m] The requested profile "nexus" could not be activated because it does not exist.
[[1;31mERROR[m] Failed to execute goal [32morg.apache.maven.plugins:maven-compiler-plugin:3.1:compile[m [1m(default-compile)[m on project [36mtest[m: [1;31mCompilation failure[m -> [1m[Help 1][m
[[1;31mERROR[m] 

我在 Jenkins 作业的控制台输出(在网页上)中找到并复制了以下命令。

/opt/apache-maven-3.5.0/bin/mvn -f pom.xml -s /var/lib/jenkins/test-maven-setting/setting.xml -gs /var/lib/jenkins/test-maven-setting/setting.xml -Dmaven.repo.local=/var/lib/jenkins/workspace/test/.repository clean package

然后我在Linux控制台切换到jenkins用户,进入job的workspace目录,尝试手动执行上面我复制的命令。

但它成功了!

[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 20.994 s
[INFO] Finished at: 2017-12-02T07:50:17+08:00
[INFO] Final Memory: 35M/298M

所以这很奇怪,相同的命令,相同的用户,相同的目录,但是当我手动执行它时它可以成功,而当 Jenkins 构建作业时失败。有谁知道詹金斯工作失败的问题是什么?

在这里我重新测试了 maven 插件并粘贴了一些屏幕截图。

【问题讨论】:

    标签: java maven jenkins


    【解决方案1】:

    您在 invoke-maven-targets 中使用“使用默认 maven 设置”选项。

    为默认和全局选择“文件系统中的设置文件”选项

    【讨论】:

    • setting.xml 位置在“Invoke-top-level-maven-targets”插件高级设置中指定。所以我认为问题不在于这个。进一步为了避免插件中的任何错误配置,我直接在Shell中编写maven命令而不使用maven插件,在命令中我指定了setting.xlm位置,但Jenkins也会失败,但如果我在Linux控制台中运行它会成功.
    • 你的 Maven 怎么样。你在jenkins里设置了吗
    • maven 安装在 Jenkins 所在的构建服务器中。我在 Jenkins 中安装了 maven 插件。
    • 我认为应用程序可以通过 maven 插件构建,也可以通过在 Jenkins 的执行 shell 中运行 maven 命令来构建,而无需特定的 maven 插件。
    • 你为什么不尝试使用 maven 插件。您不必提供所有这些参数,并且会更容易找到原因
    猜你喜欢
    • 2013-07-27
    • 2022-01-19
    • 1970-01-01
    • 1970-01-01
    • 2019-04-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-01
    相关资源
    最近更新 更多