使用 maven pom.xml 启动具有不同选项的相同 java 进程的两个实例

Posted

技术标签:

【中文标题】使用 maven pom.xml 启动具有不同选项的相同 java 进程的两个实例【英文标题】:Starting two instances of same java process with different options using maven pom.xml 【发布时间】:2019-05-22 09:52:54 【问题描述】:

这就是我所拥有的,但它不起作用。我永远看不到该进程的第二个实例正在运行。

<profile>
  <id>myid</id>
  <activation>
    <property>
      <name>myid</name>
    </property>
  </activation>
  <build>
    <plugins>
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>exec-maven-plugin</artifactId>
        <version>1.3.2</version>
        <executions>
          <execution>
            <id>first-execution</id>
            <phase>integration-test</phase>
            <goals>
              <goal>exec</goal>
            </goals>
            <configuration>
              <executable>java</executable>
              <classpathScope>compile</classpathScope>
              <arguments>
                <argument>-Djava.net.preferIPv4Stack=true</argument>
                <argument>-Ddw.logging.file.currentLogFilename=$user.home/logs/abc_20.log</argument>
                <argument>-Ddw.http.option1=5000</argument>
                <argument>-Ddw.http.option2=5001</argument>
                <argument>-Ddw.option3=abc1</argument>
                <argument>-Ddw.Id=abcdef1</argument>
                <argument>-classpath</argument>
                <classpath />
                <argument>com.mycompany.SomeService</argument>
                <argument>server</argument>
                <argument>dir1/config.yml</argument>
              </arguments>
            </configuration>
          </execution>
          <execution>
            <id>second-execution</id>
            <phase>deploy</phase>
            <goals>
              <goal>exec</goal>
            </goals>
            <configuration>
              <executable>java</executable>
              <classpathScope>compile</classpathScope>
              <arguments>
                <argument>-Djava.net.preferIPv4Stack=true</argument>
                <argument>-Ddw.logging.file.currentLogFilename=$user.home/logs/abc_21.log</argument>
                <argument>-Ddw.http.option1=6000</argument>
                <argument>-Ddw.http.option2=6001</argument>
                <argument>-Ddw.option3=abc2</argument>
                <argument>-Ddw.Id=abcdef2</argument>
                <argument>-classpath</argument>
                <classpath />
                <argument>com.mycompany.SomeService</argument>
                <argument>server</argument>
                <argument>dir1/config.yml</argument>
              </arguments>
            </configuration>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>
</profile>

任何帮助/想法/想法将不胜感激。

【问题讨论】:

你用mvn deploy运行Maven吗? 你在找mojohaus.org/exec-maven-plugin/exec-mojo.html#async @RobertScholte 我认为你是对的。 @RobertScholte 我将如何使用它?你能举个例子吗。谢谢 【参考方案1】:

要使用异步选项,您需要像这样配置插件:

<configuration>
  ...
  <async>true</async>
</configuration>

还可以考虑阅读 https://maven.apache.org/guides/mini/guide-configuring-plugins.html#Configuring_Parameters 了解如何配置任何 maven 插件。

【讨论】:

以上是关于使用 maven pom.xml 启动具有不同选项的相同 java 进程的两个实例的主要内容,如果未能解决你的问题,请参考以下文章

pom.xml 报错,怎么解决

为啥有排除 pom.xml / maven 中依赖项的依赖项的选项?

配置 Maven 2 POM Editor 以源模式打开 pom.xml 文件

eclipse中 使用maven搭建ssh项目 思路复习(含有pom.xml)

让 IntelliJ IDEA 为 maven 项目使用不同的 pom 文件

Maven 在 pom.xml 中添加 mainClass 并具有正确的文件夹路径