Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.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
Maven 2 是否有可能挑选出一个特定的目标并运行到maven阶段?_Maven 2_Ant - Fatal编程技术网

Maven 2 是否有可能挑选出一个特定的目标并运行到maven阶段?

Maven 2 是否有可能挑选出一个特定的目标并运行到maven阶段?,maven-2,ant,Maven 2,Ant,更新为(希望)澄清:如果一个目标被定义为在给定阶段运行,是否可以运行单个目标而不运行所有阶段。换句话说,是否可以运行antrun:run目标(定义为以下安装阶段的一部分),而不获取依赖项、生成资源、编译、测试、打包等 我正在使用antrun插件在包阶段创建一个zip文件,并在安装阶段删除和复制一些文件。我了解如何运行单个maven插件目标,例如:mvn antrun:run。但是,是否有一种方法可以运行特定执行的目标?类似于mvn-antrun:run:executionid,或者mvn-pha

更新为(希望)澄清:如果一个目标被定义为在给定阶段运行,是否可以运行单个目标而不运行所有阶段。换句话说,是否可以运行
antrun:run
目标(定义为以下安装阶段的一部分),而不获取依赖项、生成资源、编译、测试、打包等

我正在使用antrun插件在
阶段创建一个zip文件,并在
安装
阶段删除和复制一些文件。我了解如何运行单个maven插件目标,例如:
mvn antrun:run
。但是,是否有一种方法可以运行特定执行的目标?类似于
mvn-antrun:run:executionid
,或者
mvn-phase:antrun:run

基本上,如果我能告诉maven除了在部署阶段内运行下面定义的ant任务之外,什么都不做,我会很高兴。等待maven完成所有阶段只是为了检查部署阶段中的ant任务是否正常工作,这有点乏味

<executions>
  <!-- create zip file -->
  <execution>
    <id>create-zip</id>
    <phase>package</phase>
    <configuration>
      <tasks>
    ...create zip...
      </tasks>
    </configuration>
    <goals>
      <goal>run</goal>
    </goals>
      </execution>
  <!-- do some other stuff  -->
  <execution>
    <id>copy-files</id>
    <phase>install</phase>
    <configuration>
      <tasks>
    ...delete some files, copy some files ...
      </tasks>
    </configuration>
    <goals>
      <goal>run</goal>
    </goals>
      </execution>
    </executions>

创建拉链
包裹
…创建zip。。。
跑
复制文件
安装
…删除一些文件,复制一些文件。。。
跑
对于ex:

当您使用maven运行jboss时,您看不到jboss控制台输出,但我需要它来显示,所以我编写了一个java文件,在它更改时读入server.log(服务器控制台输出),以显示更改,因此jboss控制台似乎实际显示了(有点不正常,但工作正常)。所以我要回答你的问题,在预集成测试期间,我执行了一个java目标,启动了我的java程序。下面是如何使用execute插件的:

<plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>exec-maven-plugin</artifactId>
                <version>1.1</version>
                <executions>
                    <execution>
                        <id>console-start</id>
                        <phase>pre-integration-test</phase>
                        <goals>
                            <goal>java</goal>
                        </goals>
                    </execution>
                </executions>
                <configuration>
                    <mainClass>org.eclipse.console.Main</mainClass>
                </configuration>
            </plugin>

org.codehaus.mojo
execmaven插件
1.1
控制台启动
预集成测试
JAVA
org.eclipse.console.Main
您只需运行安装并在预集成测试期间执行,但是如果您只想执行java之类的东西,请使用execute插件。对不起,如果答案不合适,我没有耐心详细阅读你的问题,我的工作时间已经结束了。。干杯

试试

换句话说,在不获取依赖项、生成资源、编译、测试、打包等情况下运行antrun:run目标(定义为下面安装阶段的一部分)是否可能

不,不是。虽然可以配置插件(在
元素下有
部分)并在命令行上调用,但不能调用特定的executionid(因此也不能调用特定于

在您的情况下,唯一的解决方案是在配置文件中声明antrun插件,比如说
my profile
,以复制配置的以下部分来配置此配置文件中的插件:

<plugin>
  <artifactId>maven-antrun-plugin</artifactId>
  <version>1.3</version>
  <configuration>
    <tasks>
      ... delete some files, copy some files ...
    </tasks>
  </configuration>
</plugin>
mvn antrun:run -Pmy-profile