是否存在一个Maven“阶段”或“目标”来简单地执行Java类的主方法?我有一个项目,我想通过简单地做一些像“mvn运行”手动测试。
当前回答
不需要在pom.xml中添加新的插件。只需运行这个命令
mvn org.codehaus.mojo:exec-maven-plugin:1.5.0:java -Dexec.mainClass="com.example.Main" | grep -Ev '(^\[|Download\w+:)'
有关更多用法,请参阅maven exec插件。
其他回答
java -P Class_Containing_Main_Method命令也是一个选项,如果你在项目中只有一个Main方法(PSVM),使用下面的Maven Setup。
不要忘记在pom.xml的<properties></properties>部分提到这个类:
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<java.main.class>com.test.service.MainTester</java.main.class>
</properties>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.2.1</version>
<configuration>
<mainClass>${java.main.class}</mainClass>
</configuration>
</plugin>
STS运行配置与上述Maven安装:
试试Exec Maven插件吧
1. 编辑POM.xml
在pom.xml中添加以下属性。确保你使用了包含main方法的完全限定类名(即包名):
<properties>
<exec.mainClass>fully-qualified-class-name</exec.mainClass>
</properties>
2. 运行命令
现在从终端,触发以下命令:
mvn clean compile exec:java
您可以通过-Dexec传递进一步的参数。args = " xxx "国旗。
不需要在pom.xml中添加新的插件。只需运行这个命令
mvn org.codehaus.mojo:exec-maven-plugin:1.5.0:java -Dexec.mainClass="com.example.Main" | grep -Ev '(^\[|Download\w+:)'
有关更多用法,请参阅maven exec插件。
参见exec maven插件。你可以使用以下方法运行Java类:
mvn exec:java -Dexec.mainClass="com.example.Main" [-Dexec.args="argument1"] ...
如果插件配置在pom.xml中,那么调用可以像mvn exec:java一样简单。Mojohaus上的插件站点有一个更详细的例子。
<project>
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.2.1</version>
<configuration>
<mainClass>com.example.Main</mainClass>
<arguments>
<argument>argument1</argument>
</arguments>
</configuration>
</plugin>
</plugins>
</build>
</project>
推荐文章
- Eclipse调试器总是阻塞在ThreadPoolExecutor上,没有任何明显的异常,为什么?
- Java生成两个给定值之间的随机数
- 如何有效地从数组列表或字符串数组中删除所有空元素?
- 比较JUnit断言中的数组,简洁的内置方式?
- codestyle;把javadoc放在注释之前还是之后?
- 如何在Spring中定义List bean ?
- 将Set<T>转换为List<T>的最简洁的方法
- 在JavaScript中,什么相当于Java的Thread.sleep() ?
- 使用Java重命名文件
- URL从Java中的类路径加载资源
- .toArray(new MyClass[0]) or .toArray(new MyClass[myList.size()])?
- Hibernate中不同的保存方法之间有什么区别?
- Java 8流和数组操作
- Java Regex捕获组
- Openssl不被视为内部或外部命令