Maven:运行命令行应用程序时使用存储库中的依赖项?

2024-01-24

我使用 Maven 来构建我的命令行应用程序。现在我要将其作为 jar 文件分发,并且我需要处理应用程序的依赖项。

我不想按照描述在 jar 文件中包含所有依赖项here http://www.sonatype.com/books/mvnex-book/reference/customizing-sect-custom-packaged.html#customizing-sect-attaching-assembly.

我的应用程序运行的环境有 Maven。我希望 Maven 运行我的 jar 查看文件META-INF/groupId/artifactId/pom.xml在包内,以便它知道依赖项是什么,并可以在存储库中找到它们。

有任何想法吗 ?


在 jar 中包含一个主类,1) 将 pom 提取到临时文件,2) 使用带有 -f 参数和目标的文件启动一个新的 Maven 进程依赖:解决 http://maven.apache.org/plugins/maven-dependency-plugin/resolve-mojo.html and 依赖:构建类路径 http://maven.apache.org/plugins/maven-dependency-plugin/build-classpath-mojo.html

像这样:

mvn -f /temp/tempfile.xml dependency:resolve dependency:build-classpath -DoutputFile=/temp/classpath.txt

然后 3) 读取新创建的类路径文件,4) 使用新的类路径文件启动一个新的 java 进程

java -cp yourjar.jar;<created classpath>

当然,您的 pom.xml 必须包含所有必需的存储库信息

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Maven:运行命令行应用程序时使用存储库中的依赖项? 的相关文章

随机推荐