我有一个包含多个类的包(每个类封装一个可执行程序,即一个main()方法),即:
com.myorg.examples.classA
com.myorg.examples.classB
etc.
所有类都属于同一包(com.myorg.examples
)。
我知道我可以使用maven运行此类的一个,例如:
mvn exec:java -D"exec.mainClass"="com.myorg.examples.classA"
我也知道我可以配置exec-maven-plugin,以便使用较短的命令来执行相同的操作,例如:
<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.myorg.examples.classA</mainClass>
</configuration>
</plugin>
然后使用:
mvn exec:java
但是,我想知道是否有可能:
要使用exec-maven-plugin(或另一个)来配置多个执行并执行类似的操作
mvn exec:classA # or,
mvn exec:java classA
因此运行了classA,但使用的语法比纯exec:java短。对于XML结构,似乎只能设置一个类,所以我不确定如何实现。
依次执行所有类,例如:
mvn exec-all
以便运行classA,下一个classB等。
我们将非常欢迎您提供有关这些主题的任何帮助或链接。谢谢!
编辑:问题的第二部分已分解为this other post。
答案 0 :(得分:2)
您可以配置几个自Maven version 3.3.1起可用的执行方式
<project...>
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.6.0</version>
<executions>
<execution>
<id>default-cli</id>
<configuration>
<mainClass>com.soebes.test.First</mainClass>
</configuration>
</execution>
<execution>
<id>second-cli</id>
<configuration>
<mainClass>com.soebes.test.Second</mainClass>
</configuration>
</execution>
<execution>
<id>third-cli</id>
<configuration>
<mainClass>com.soebes.test.Third</mainClass>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
因此,您现在可以通过以下方式致电Maven:
以下将执行id为default-cli
的那一个:
mvn exec:java
以下将执行id为second-cli
的那一个:
mvn exec:java@second-cli
以下将执行id为thirds-cli
的那一个:
mvn exec:java@third-cli
问题是为什么在几个不同的包中但在一个Maven模块中有几个主类,这听起来对我来说有不同的模块(因为您已经有包)。另一个问题是为什么您需要执行它们通过exec-maven-plugin吗?目的是什么?
答案 1 :(得分:0)
只需在相关位置的pom.xml中添加以下代码
UTF-8 com.springexamples.demo.MainClassOne com.springexamples.demo.MainClassTwo