配置单程序入口
Maven 可以通过配置插件来运行 Java 应用。你可以使用 maven-exec-plugin
,这个插件允许你在 Maven 的生命周期中的某个阶段直接运行 Java 类。
以下是如何在 pom.xml
文件中配置 exec-maven-plugin
来运行项目的主类的示例:
<project>
<!-- 其他配置省略 -->
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.6.0</version> <!-- 请使用最新或适合你项目的版本 -->
<executions>
<execution>
<goals>
<goal>java</goal>
</goals>
</execution>
</executions>
<configuration>
<!— 在这里配置你的主类 —>
<mainClass>com.example.MainClass</mainClass>
<!-- 如果有需要传给main方法的命令行参数, 可以使用下面的配置
<arguments>
<argument>arg1</argument>
<argument>arg2</argument>
<!-- 更多参数 -->
</arguments>
-->
</configuration>
</plugin>
<!-- 其他插件配置 -->
</plugins>
</build>
</project>
在这个例子中,<mainClass>
标签包含了你的主类的全路径,比如 com.example.MainClass
。这假设 com.example.MainClass
中包含一个标准的 main
方法,作为应用的入口。
一旦配置好,你可以使用以下命令运行你的应用:
mvn exec:java
Maven会启动定义的主类。如果需要在 IDE 中运行程序,通常直接从 IDE 启动主类会比较方便。
如果你的项目是一个 web 应用程序,你可能会使用 tomcat7-maven-plugin
、jetty-maven-plugin
或者其他适合的 Servlet 容器插件来运行你的web应用。
配置多程序入口
<project>
<!-- ... 其他配置 ... -->
<build>
<plugins>
<!-- 配置运行 test.TestMain 类 -->
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.6.0</version>
<executions>
<execution>
<id>run-main</id>
<configuration>
<mainClass>test.TestMain</mainClass>
</configuration>
<goals>
<goal>java</goal>
</goals>
</execution>
</executions>
</plugin>
<!-- 配置运行 test.TestParser 类 -->
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.6.0</version>
<executions>
<execution>
<id>run-parser</id>
<configuration>
<mainClass>test.TestParser</mainClass>
</configuration>
<goals>
<goal>java</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
在这个示例中,在 <executions>
中有了两个不同的 <execution>
块,每个执行块都有一个 <id>
和 <configuration>
。通过这个配置,你可以执行两个不同的主类:
- 要运行
test.TestMain
类,请执行:
mvn exec:java@run-main
- 要运行
test.TestParser
类,请执行:
mvn exec:java@run-parser
这里,@run-main
和 @run-parser
是定义在 <execution>
块的 <id>
标签中的标识符。这些标识符用于通过Maven命令行区分和执行对应的主类。如果你没有指定 <id>
,Maven默认使用 default-cli
,所以当你有多个执行块时指定 <id>
是非常重要的。