Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 用于用maven antrun插件替换exec maven插件的脚本_Java_Maven - Fatal编程技术网

Java 用于用maven antrun插件替换exec maven插件的脚本

Java 用于用maven antrun插件替换exec maven插件的脚本,java,maven,Java,Maven,如果这是一个愚蠢的问题,我深表歉意我现在有点不知所措 这与前面的一个问题有关 本质上,我有一个maven java应用程序,它是从Jenkins中的命令行(或要测试的命令窗口)运行的。它在主服务器上运行一些处理,大约需要一个小时(在较小的机器上运行两天!)。它一直使用ExecMaven插件1.1.1运行。我最近更新了一些依赖项,奇怪的是,它现在在处理结束时挂起了以前没有挂起的地方。我在谷歌上搜索了一下,虽然我不完全明白为什么这似乎是一个已知的问题。我试图将execmaven插件升级到1.3.2

如果这是一个愚蠢的问题,我深表歉意我现在有点不知所措

这与前面的一个问题有关

本质上,我有一个maven java应用程序,它是从Jenkins中的命令行(或要测试的命令窗口)运行的。它在主服务器上运行一些处理,大约需要一个小时(在较小的机器上运行两天!)。它一直使用ExecMaven插件1.1.1运行。我最近更新了一些依赖项,奇怪的是,它现在在处理结束时挂起了以前没有挂起的地方。我在谷歌上搜索了一下,虽然我不完全明白为什么这似乎是一个已知的问题。我试图将execmaven插件升级到1.3.2,但失败了,这正是上述问题的症结所在。事实上,我认为我已经偏离了方向,我认为我需要找到一种不同的方式来运行代码(?)。让我来谈谈问题的主旨

我经常看到的答案(我在Windows环境中工作)和有人评论的答案是用maven antrun插件替换exec maven插件。奇怪的是,尽管我在互联网上找到的主要示例并没有真正说明如何执行比运行echo命令更多的操作。如果我理解正确,我需要运行antexec命令从主进程运行代码,并可能运行另一个脚本在完成时停止主线程(实际上我对此更不清楚)。我就是搞不懂我应该在剧本里做什么。我应该看看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>

org.codehaus.mojo
execmaven插件
1.1.1    
安装
JAVA
com.org.dc.dcClient

我认为解决我的问题(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>

org.apache.maven.plugins
maven antrun插件
1.1
安装
跑
使用Ant Run

如果您只需要执行一个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>
maven-antrun插件
1.8
跑

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

非常感谢-在尝试了解-h表示什么时,找到了指向本应查看位置的链接。。。如果有人来问这个问题,就加上一句