使用 Maven 运行多个类

我有一个包含多个类的包(每个类都封装一个可执行程序,即使用 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

任何有关这些主题的帮助或链接都将受到高度欢迎。谢谢!



有只小跳蛙
浏览 198回答 2
2回答

蛊毒传说

您可以配置自Maven 版本 3.3.1起可用的多个执行<project...>&nbsp; <build>&nbsp; &nbsp; <plugins>&nbsp; &nbsp; &nbsp; <plugin>&nbsp; &nbsp; &nbsp; &nbsp; <groupId>org.codehaus.mojo</groupId>&nbsp; &nbsp; &nbsp; &nbsp; <artifactId>exec-maven-plugin</artifactId>&nbsp; &nbsp; &nbsp; &nbsp; <version>1.6.0</version>&nbsp; &nbsp; &nbsp; &nbsp; <executions>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <execution>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <id>default-cli</id>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <configuration>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <mainClass>com.soebes.test.First</mainClass>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </configuration>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </execution>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <execution>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <id>second-cli</id>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <configuration>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <mainClass>com.soebes.test.Second</mainClass>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </configuration>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </execution>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <execution>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <id>third-cli</id>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <configuration>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <mainClass>com.soebes.test.Third</mainClass>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </configuration>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </execution>&nbsp; &nbsp; &nbsp; &nbsp; </executions>&nbsp; &nbsp; &nbsp; </plugin>&nbsp; &nbsp; </plugins>&nbsp;&nbsp; </build></project>因此,您现在可以通过以下方式调用 Maven:以下将执行一个 where id: default-cli:mvn exec:java以下将执行一个 where id: second-cli:mvn exec:java@second-cli以下将执行一个 where id: thirds-cli:mvn exec:java@third-cli问题是为什么你在不同的包中有几个主要类,但在一个 Maven 模块中,这听起来对我来说有不同的模块(因为你已经有了包)。另一个问题是为什么你需要通过 exec- 执行它们Maven插件?意图是什么?

萧十郎

只需在 pom.xml 的相关位置添加以下代码UTF-8 com.springexamples.demo.MainClassOne com.springexamples.demo.MainClassTwo
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java