gpt4 book ai didi

java - Maven jar :jar not gathering dependencies

转载 作者:行者123 更新时间:2023-12-02 09:11:39 25 4
gpt4 key购买 nike

我正在尝试在 GitLab CI 管道中使用语义发布。我的准备阶段工作正常,但是当我使用 mvn jar:jar deploy:deploy 以外的任何内容时,发布阶段总是失败,但是当我使用这些命令时,它会部署一个 的 jar 3kb 大,而不是 10mb 的 jar。所以我只能假设它没有收集依赖项。有一条警告消息,表明没有文件被标记为包含并且 jar 为空。所以我尝试在调用部署之前打包项目。它不起作用。

管道失败且没有任何原因。它只是表明该行是罪魁祸首。

我尝试过的命令:

mvn clean install
mvn clean package deploy
mvn jar:jar deploy:deploy
mvn clean deploy:deploy
.. you get the idea.

这是有效的准备部分:

verifyConditions:
- "@semantic-release/changelog"
- "@semantic-release/gitlab"
- "@semantic-release/git"
verifyRelease:
- path: "@semantic-release/exec"
cmd: echo -e "VERSION=${nextRelease.version}\nNEW_RELEASE=true" > RELEASE.env
prepare:
- path: "@semantic-release/exec"
cmd: if [ ! -d ".m2" ]; then mkdir .m2; cd .m2; touch settings.xml; echo $MVN_SETTINGS | base64 -d > 'settings.xml'; cd ..; fi; mvn versions:set -DnewVersion=${nextRelease.version} -B -gs .m2/settings.xml;
- "@semantic-release/changelog"

这里的发布部分仅适用于 jar:jar deploy:deploy 但不会创建正确的 jar。

publish:
- "@semantic-release/gitlab"
- path: "@semantic-release/exec"
cmd: if [ ! -d ".m2" ]; then mkdir .m2; cd .m2; touch settings.xml; echo $MVN_SETTINGS | base64 -d > 'settings.xml'; cd ..; fi; mvn versions:set -DnewVersion=${nextRelease.version} -DremoveSnapshot=true clean deploy -B -gs .m2/settings.xml;

我对此非常陌生,我不明白为什么:

1) 尝试 clean deploy 会导致此失败,而 jar:jar deploy:deploy 则不会2)我如何获得语义释放来创建一个包含所有依赖项的jar,以便上传到我们的存储库。

我应该注意到,Maven Shade 插件和 Maven Deploy 插件都存在于我的 pom 中。

这是一个较旧的运行,但它们的格式都是这样的,并且没有告诉您失败的原因。事实确实如此:

  stderr: '/bin/sh: line 1:   425 Killed                  mvn clean deploy -B -gs .m2/settings.xml\n',
failed: true,
signal: null,
cmd: '/bin/sh -c mvn $MAVEN_CLI_OPTS versions:set -DremoveSnapshot; mvn clean deploy -B -gs .m2/settings.xml',
timedOut: false,
killed: false,
pluginName: '@semantic-release/exec' }ERROR: Job failed: command terminated with exit code 1

最佳答案

首先,使用mvn clean deploy进行部署。您提供的其他组合不会产生合理的输出。

如果你想将依赖项打包到你的jar中,你需要正确配置Maven的shade插件(通常不需要配置deploy插件)。如果没有您的 pom.xml,我只能猜测,但我想说错误可能出在该配置中。

顺便说一句:如果 jar 旨在独立运行,则仅将依赖项放入 jar 中。另一方面,如果您编写一个 Java 库用作依赖项,则不要这样做。

关于java - Maven jar :jar not gathering dependencies,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59361574/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com