通过 maven 从远程存储库中拉取它们来执行 jar 文件

Execute jar file through maven by pulling them from a remote repository

我有一个 maven 项目,我在私有远程存储库上构建和部署它。代码是通过持续集成流水线构建的。

可以从我的远程计算机访问此存储库。我想要的是拉取工件并在这台远程机器上执行它,而不拉取项目的源代码。

据我所知,需要一个包含此 repo 的 pom 文件作为依赖项,但他们是否可以通过其他任何方式执行相同操作而无需下载源代码

如果您可以只下载一个文件推送到 Artifactory(我假设您使用的是标签中的 artifactory),则可以使用简单的 http get 请求(通过 Artifactory REST API),喜欢 curl,甚至使用 JFrog cli。

我推荐使用 CLI:https://www.jfrog.com/confluence/display/CLI/CLI+for+JFrog+Artifactory

要使用 Artifactory REST API 直接转到: https://www.jfrog.com/confluence/display/RTF/Artifactory+REST+API

检索 Artefact api 或检索最新的 Artefact 可能会有帮助。

如果您安装了 maven,您可以使用 CLI 下载该文件。下面是一个示例命令。

call mvn org.apache.maven.plugins:maven-dependency-plugin:2.4:get -DrepoUrl=<your nexus url> -Dartifact=<groupid>:<artifactid>:<version>:jar:jar-with-dependencies -Ddest=<destination>

你试过 exec-maven-plugin 了吗? http://www.mojohaus.org/exec-maven-plugin/examples/example-exec-for-java-programs.html 那就是如果你想用 Maven 来完成这项工作(我不太清楚你是否想在你的远程机器上使用 Maven)。

注意:在可执行 jar 中重新打包依赖项不是一个好习惯。您仍然可以与您的 jar 一起构建分发存档(查看 maven-assembly-plugin https://maven.apache.org/plugins/maven-assembly-plugin/)并改用该存档。