我想上传并部署现有的 jar 到artifactory。
有一个来自第三方的管道,我无法控制第 1 步将构建 jar。然后将 jar 放在主机上的文件目录中。同样,我无法控制作业本身。
但是当我手动进入主机时,我可以通过执行以下命令看到 jar 是正确的jar xf thejar.jar
。提取的内容将包含所有正确的类文件。
现在,我的部分,第 2 步,我正在尝试将这个 jar 上传到artifactory 中。
我知道有一个运行的选项mvn deploy
,但这将运行 Maven 生命周期的所有先前步骤。由于 jar 是正确的,我想避免这种重复(运行 Maven 生命周期的所有先前步骤)并只上传 jar。
到目前为止我遇到了两个解决方案:
运行
mvn deploy:deploy
似乎这个解决方案不会重新运行所有内容,而只是尝试上传 jar运行
mvn jar:jar deploy:deploy
相同,看来这个解决方案不会重新运行所有内容,而只是尝试上传 jar
然而,解决方案 1 会产生以下问题:
[INFO] ----------------------< com.example:mavendeploy >-----------------------
[INFO] Building mavendeploy 4.3
[INFO] from pom.xml
[INFO] --------------------------------[ jar ]---------------------------------
[INFO]
[INFO] --- deploy:3.1.2:deploy (default-cli) @ mavendeploy ---
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 0.329 s
[INFO] Finished at: 2025-T19:26:20Z
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-deploy-plugin:3.1.2:deploy (default-cli) on project mavendeploy: The packaging plugin for project mavendeploy did not assign a file to the build artifact -> [Help 1]
看起来它甚至没有检测到罐子。
而第二种解决方案也会产生这个问题。
[INFO] --------------------------------[ jar ]---------------------------------
[INFO]
[INFO] --- jar:3.4.1:jar (default-cli) @ mavendeploy ---
[WARNING] JAR will be empty - no content was marked for inclusion!
[INFO] Building jar: /builds/path/to/jar/mavendeploy-4.3.jar
[INFO]
[INFO] --- deploy:3.1.2:deploy (default-cli) @ mavendeploy ---
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
虽然它似乎可以正确检测到正确的 jar,但还是出现了这个警告,JAR will be empty
而且,虽然 jar 似乎确实已上传到artifactory,但从artifactory 下载的 jar 不包含任何类文件。为什么?
将现有 jar 上传到artifactory 的正确方法是什么mvn deploy
(希望不需要重新运行整个 maven 生命周期,因为 jar 已经存在)?
我在解决方案 1 或解决方案 2 中做错了什么?
要上传现有工件,您需要使用
deploy:deploy-file
另请参阅https://maven.apache.org/plugins/maven-deploy-plugin/deploy-file-mojo.html