从Maven自动下载并运行独立Java应用程序

时间:2011-06-02 22:14:27

标签: java maven deployment aether

我想有一个应用程序/脚本,我可以用它来执行一个独立的Java应用程序(即带有main方法的基本类)来自给定的Maven工件。根据我的研究,目前还没有这样的问题,但我想我会向社区提出这个问题,看看是否有人知道一个项目可以满足我的需求。

我的想法是通过配置文件或命令行,Maven工件规范(组ID,工件ID和版本)以及完全限定的类名和参数列表传入。然后将下载给定的工件及其所有依赖项(如果它们已经在本地存储库中,则不会下载),并且将使用适当的类路径启动应用程序。

此时我认为使用Aether library和Java的ProcessBuilder实现这样做的系统并不太难,但我想知道是否有其他人知道已经处理过这个问题的现有项目在我开始重新发明轮子之前。

3 个答案:

答案 0 :(得分:3)

也许这很明显,但为什么exec插件不起作用? http://mojo.codehaus.org/exec-maven-plugin/

mvn exec:java -Dexec.mainClass=com.project.App

如果com.project.App是另一个jar的一部分,你可以像往常一样将它包含为依赖项。

答案 1 :(得分:2)

使用Maven运行应用程序非常简单。我想知道你看到的这个东西是不是我弄错了?

mvn exec:java -Dexec.mainClass="com.test.foo.Main" -Dexec.args="arg1 arg2..." 

答案 2 :(得分:0)

我刚刚将Installation plugin推到了Maven Central。它允许从存储库安装和执行工件,并且不需要项目。

它与yum,apt或gem之类的包管理器非常相似:

mvn installation:install -Dartifact=groupId:artifactId

这将创建路径上可用的类的快捷方式。