Dón*_*nal 254 java maven-2 maven maven-exec-plugin
我创建了一个使用Maven构建的简单控制台Java应用程序.是否有一种方法可以使用maven命令从命令行运行主类(不需要任何参数),如:
mvn run-app com.example.MainClass
Run Code Online (Sandbox Code Playgroud)
Mat*_*ell 529
试试maven-exec-plugin.从那里:
mvn exec:java -Dexec.mainClass="com.example.Main"
Run Code Online (Sandbox Code Playgroud)
这将在JVM中运行您的类.您可以使用-Dexec.args="arg0 arg1"
传递参数.
如果您使用的是Windows,申请报价
exec.mainClass
和exec.args
:Run Code Online (Sandbox Code Playgroud)mvn exec:java -D"exec.mainClass"="com.example.Main"
如果您经常这样做,您也可以将参数添加到pom.xml中:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.2.1</version>
<executions>
<execution>
<goals>
<goal>java</goal>
</goals>
</execution>
</executions>
<configuration>
<mainClass>com.example.Main</mainClass>
<arguments>
<argument>foo</argument>
<argument>bar</argument>
</arguments>
</configuration>
</plugin>
Run Code Online (Sandbox Code Playgroud)
alb*_*fan 15
尽管maven exec在这里发挥了作用,但我发现它对于真正的测试来说非常糟糕.在等待maven shell的时候,希望这可以帮助别人,我终于出现了这个回购mvnexec
克隆它,并在路径中的某个位置对脚本进行符号链接.我使用~/bin/mvnexec
,就像我~/bin
在路上一样.我认为mvnexec是一个很好的脚本名称,但是你可以更改符号链接...
从项目的根目录启动它,您可以在其中看到src和目标目录.
脚本使用main方法搜索类,提供select以选择一个(带有mavenized JMeld项目的示例)
$ mvnexec
1) org.jmeld.ui.JMeldComponent
2) org.jmeld.ui.text.FileDocument
3) org.jmeld.JMeld
4) org.jmeld.util.UIDefaultsPrint
5) org.jmeld.util.PrintProperties
6) org.jmeld.util.file.DirectoryDiff
7) org.jmeld.util.file.VersionControlDiff
8) org.jmeld.vc.svn.InfoCmd
9) org.jmeld.vc.svn.DiffCmd
10) org.jmeld.vc.svn.BlameCmd
11) org.jmeld.vc.svn.LogCmd
12) org.jmeld.vc.svn.CatCmd
13) org.jmeld.vc.svn.StatusCmd
14) org.jmeld.vc.git.StatusCmd
15) org.jmeld.vc.hg.StatusCmd
16) org.jmeld.vc.bzr.StatusCmd
17) org.jmeld.Main
18) org.apache.commons.jrcs.tools.JDiff
#?
Run Code Online (Sandbox Code Playgroud)
如果选择了一个(键入数字),则提示您参数(您可以避免使用mvnexec -P
)
默认情况下,它会在每次运行时编译项目 但你可以避免使用mvnexec -B
它可以搜索仅在测试类-M
或--no-main
,或仅在主类-T
或--no-test
.还有一个名称过滤选项-f <whatever>
希望这可以为你节省一些时间,对我而言.
归档时间: |
|
查看次数: |
275026 次 |
最近记录: |