我尝试使用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任务,您可能会获得更大的成功。蚂蚁比其他任何人都更了解通配符。

08-04 02:35