【发布时间】:2011-06-02 22:14:27
【问题描述】:
我想要一个应用程序/脚本,我可以使用它从给定的 Maven 工件执行独立的 Java 应用程序(即具有 main 方法的基本类)。根据我的研究,目前不存在这样的情况,但我想我会向社区提出这个问题,看看是否有人知道可以满足我需求的项目。
我的想法是,我将通过配置文件或命令行传入 Maven 工件规范(组 ID、工件 ID 和版本)以及完全限定的类名和参数列表。然后将下载给定的工件及其所有依赖项(如果它们已经在本地存储库中,则不下载),并使用适当的类路径启动应用程序。
在这一点上,我认为使用 Aether library 和 Java 的 ProcessBuilder 来实现一个系统不会太难,但我想知道是否有其他人知道在我之前已经处理过这个的现有项目开始重新发明轮子。
【问题讨论】:
-
我已经完成了一些非常接近的事情,方法是拥有一个 pom 文件,该文件指定具有您想要作为依赖项运行的类的项目。然后我运行“mvn package”,然后运行“mvn exec:java”来运行该类。对任意类执行此操作需要动态修改该 pom 文件。
-
@Chris 正如其他几个人指出的那样,这是一个好主意。我只是拼凑了一个快速的 pom 作为概念证明,你甚至不需要运行“mvn package”。我将虚拟项目的打包设置为“pom”,然后直接运行“mvn exec:java”。
-
这就是堆栈溢出真正开始起作用的地方:感谢您的帮助!
-
jcabi-aether 应该能够使用它们的 Maven 坐标帮助下载工件
标签: java maven deployment aether