【问题标题】:How to Configure pom.xml to run 2 java mains in 1 Maven project如何配置 pom.xml 在 1 个 Maven 项目中运行 2 个 java main
【发布时间】:2013-11-21 20:40:43
【问题描述】:

我有一个 Maven 项目,它在 src 文件夹中的一个包内有 2 个主电源(MyTestApp_A 和 MyTestApp_B)。

如果我打开它们并单击运行按钮,我可以在 Eclipse 中运行这些“主”类。但是,Eclipse 存在错误,因此我实际上需要使用 Maven 在命令行上运行这两个类。

我以前从未使用过 Maven,但在寻求帮助并进行了一些研究后,我了解到我必须更改 pom.xml 文件。

因此,我已成功更改我的 pom.xml 文件以使用命令 mvn exec:java -Dexec.mainClass="servers.MyTestApp_B" 运行其中一个应用程序:

    <plugins>
        <!-- Allows the example to be run via 'mvn compile exec:java' -->
        <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>exec-maven-plugin</artifactId>
            <version>1.2.1</version>

            <configuration>
                <mainClass>servers.MyTestApp_A</mainClass>
                <includePluginDependencies>false</includePluginDependencies>
            </configuration>


        </plugin>

    </plugins>

很高兴能够运行 MyTestApp_A,我尝试添加另一个配置部分来运行 MyTestApp_B:

    <plugins>
        <!-- Allows the example to be run via 'mvn compile exec:java' -->
        <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>exec-maven-plugin</artifactId>
            <version>1.2.1</version>

            <configuration>
                <mainClass>servers.MyTestApp_A</mainClass>
                <includePluginDependencies>false</includePluginDependencies>
            </configuration>
            <configuration>
                <mainClass>servers.MyTestApp_B</mainClass>
                <includePluginDependencies>false</includePluginDependencies>
            </configuration>

        </plugin>

    </plugins>

但是,此文件格式不正确。显然我不允许在同一个 pom.xml 文件中有 2 个&lt;configuration&gt; 标签。

那么,如何使用 Maven 执行 MyTestApp_A 和 MyTestApp_B?如何配置 pom.xml 文件?

【问题讨论】:

  • 您需要为您的插件配置两个或多个不同的&lt;execution&gt; 部分(可能有不同的配置)。有关指南,请参阅maven.apache.org/guides/mini/…
  • 实际上,我认为这不是一个好主意,因为 maven 是构建工具,而不是 java-runner 工具。您通过 maven 启动这些文件的原因是什么?您可以轻松地创建一个包装脚本来完成这项工作。

标签: java maven


【解决方案1】:

尝试对您要执行的每个主类使用执行:

<plugins>
    <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>exec-maven-plugin</artifactId>
        <version>1.2.1</version>
        <executions>
            <execution>
                <id>MyTestApp_A</id>
                <goals>
                    <goal>java</goal>
                </goals>
                <configuration>
                    <mainClass>servers.MyTestApp_A</mainClass>
                    <includePluginDependencies>false</includePluginDependencies>
                </configuration>
            </execution>
            <execution>
                <id>MyTestApp_B</id>
                <goals>
                    <goal>java</goal>
                </goals>
                <configuration>
                    <mainClass>servers.MyTestApp_B</mainClass>
                    <includePluginDependencies>false</includePluginDependencies>
                </configuration>
            </execution>
        </executions>
    </plugin>
</plugins>

【讨论】:

  • 要通过 ID 执行您需要的特定执行:mvn exec:java@MyTestApp_A(从 Maven 3.3.1 开始)。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-06-16
  • 2022-06-14
  • 2014-03-31
  • 1970-01-01
  • 2016-06-01
相关资源
最近更新 更多