运行 多个 类 使用 Maven
Run multiple classes using Maven
我有一个包含多个 classes 的包(每个都封装了一个可执行程序,即带有 main() 方法),即:
com.myorg.examples.classA
com.myorg.examples.classB
etc.
所有 class 属于同一个包 (com.myorg.examples
)。
我知道我可以使用 Maven 来 运行 一个 这样的 classes,例如:
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结构似乎只能设置一个class,所以我不确定如何实现。
依次执行所有classes,eg:
mvn exec-all
依次为运行classA,下一个classB,依此类推
任何有关这些主题的帮助或 link 都将受到热烈欢迎。谢谢!
编辑: 问题的第二部分已分拆到 this other post。
您可以配置自 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 来执行它们吗?意图何在?
只需要在pom.xml的相关地方添加如下代码
UTF-8编码
com.springexamples.demo.MainClassOne
com.springexamples.demo.MainClassTwo
我有一个包含多个 classes 的包(每个都封装了一个可执行程序,即带有 main() 方法),即:
com.myorg.examples.classA
com.myorg.examples.classB
etc.
所有 class 属于同一个包 (com.myorg.examples
)。
我知道我可以使用 Maven 来 运行 一个 这样的 classes,例如:
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结构似乎只能设置一个class,所以我不确定如何实现。
依次执行所有classes,eg:mvn exec-all
依次为运行classA,下一个classB,依此类推
任何有关这些主题的帮助或 link 都将受到热烈欢迎。谢谢!
编辑: 问题的第二部分已分拆到 this other post。
您可以配置自 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 来执行它们吗?意图何在?
只需要在pom.xml的相关地方添加如下代码
UTF-8编码 com.springexamples.demo.MainClassOne com.springexamples.demo.MainClassTwo