【问题标题】:script used for replacing exec-maven-plugin with maven-antrun-plugin用于将 exec-maven-plugin 替换为 maven-antrun-plugin 的脚本
【发布时间】:2015-01-19 00:51:05
【问题描述】:

如果这最终成为一个愚蠢的问题,我深表歉意,我现在有点超出我的深度......

这与上一个问题有关

Upgrading exec-maven-plugin from 1.1.1 to 1.2 or 1.3.2

基本上我有一个 Maven Java 应用程序,它是从 Jenkins 的命令行(或要测试的命令窗口)运行的。它在主服务器上运行一些需要一个小时左右的处理(在较小的机器上需要 2 天!)。它一直在运行 exec-maven-plugin 1.1.1。我最近更新了一些依赖项,奇怪的是它现在在处理结束时挂起,而以前没有。我用谷歌搜索了一下,虽然我不完全理解为什么这似乎是一个已知问题。我试图将 exec-maven-plugin 升级到 1.3.2,但失败了,这就是上面的问题。实际上,我认为我被跟踪了,我认为我需要找到一种不同的方式来运行代码(?)。把我带到问题的主旨......

我最常看到的答案(我在 Windows 环境中工作)并且有人评论是用 maven-antrun-plugin 替换 exec-maven-plugin。奇怪的是,虽然我在互联网上找到的主要示例并没有真正展示如何做更多的事情,而不仅仅是运行 echo 命令。如果我理解正确,我需要运行 Ant exec 命令来运行 Main proc 中的代码,并可能运行另一个脚本来在完成时停止主线程(实际上我对此还不太清楚)。我只是无法掌握我应该在脚本中做什么。我应该查看 Ant 文档以了解如何构建 build.xml 文件(我假设不是因为它是一个 maven 应用程序,这似乎是一个倒退)还是我应该运行一些 dos 命令来执行一些任务还是一些内置的 ant 命令?

只是重申一下,我不希望任何人为我编写脚本(!)但目前我真的不明白我要在脚本中实现什么,我应该使用什么级别的命令投入其中或如何开始。如果有人能指出我正确的方向或通过在某处指向一些明确的文档来向我展示,我将非常感激。

如果我不清楚我一直在使用

运行应用程序
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.1.1</version>    
<executions>
    <execution>
        <phase>install</phase>
        <goals>
            <goal>java</goal>
        </goals>
        <configuration>
            <mainClass>com.org.dc.dcClient</mainClass>
        </configuration>
</execution>

我认为我的问题的解决方案(Maven 无法重新控制代码竞争)是将其更改为类似于

的内容
<build>
  <plugins>
     <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-antrun-plugin</artifactId>
        <version>1.1</version>
        <executions>
           <execution>
              <phase>install</phase>
              <goals>
                 <goal>run</goal>
              </goals>
              <configuration>
              <tasks>
                 <echo>Using Ant Run</echo>
                 <exec [script]"/>
              </tasks>                  
              </configuration>
           </execution>
        </executions>

谢谢

【问题讨论】:

    标签: java maven


    【解决方案1】:

    如果您只需要执行一个 java 类,那么在您的 pom 中添加以下行就可以了。

        <artifactId>maven-antrun-plugin</artifactId>
        <version>1.8</version>
        <executions>
          <execution>
            <phase> <!-- a lifecycle phase --> </phase>
            <configuration>
              <target>
                <java classname="test.Main">
                 <arg value="-h"/>
                 <classpath>
                   <pathelement location="dist/test.jar"/>
                   <pathelement path="${java.class.path}"/>
                 </classpath>
               </java>
              </target>
            </configuration>
            <goals>
              <goal>run</goal>
            </goals>
          </execution>
        </executions>
    

    注意目标标签之间的部分。您需要处理类路径等的配置。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-01-17
    • 2012-07-19
    • 1970-01-01
    • 2020-08-15
    • 2016-01-31
    • 1970-01-01
    • 2010-11-22
    相关资源
    最近更新 更多