我尝试使用exec-maven-plugin运行Java程序。
我使用以下pom代码段:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.2.1</version>
<configuration>
<executable>java</executable>
<arguments>
<argument>-Dmyproperty=myvalue</argument>
<argument>-cp</argument>
<argument>"/home/vogella/libs/*"</argument>
<argument>com.vogella.test.Main</argument>
</arguments>
</configuration>
</plugin>
com.vogella.test.Main
类包含在/ home / vogella / libs / *中的一个jar文件中。如果运行mvn -X clean install exec:exec
命令,则会看到以下错误消息:[DEBUG]执行命令行:java -Dmyproperty = myvalue -cp
“/ home / vogella / libs / *” com.vogella.test.Main
错误:找不到或加载主类com.vogella.test.Main
如果将命令行(
java -Dmyproperty=myvalue -cp "/home/vogella/libs/*" com.vogella.test.Main
)复制到启动Maven构建的shell中,那么Java程序将正确执行。知道我的Maven安装有什么问题吗?
最佳答案
使用CLI,bash会扩展/ home / vogella / libs / *表达式,并将其解析为文件列表。使用Maven,可以直接执行表达式,而不进行扩展。因此它仍然是“/ home / vogella / libs / *”,这不是有效的jar文件。
通过使用antrun插件并在脚本中使用java Ant任务,您可能会获得更大的成功。蚂蚁比其他任何人都更了解通配符。