Maven构建有多个exec插件执行,ant任务

时间:2017-07-16 20:51:48

标签: maven-3 maven-antrun-plugin exec-maven-plugin

我必须按照下面提到的特定顺序在我的maven构建中执行以下步骤:

  1. EXEC-行家-插件
  2. 行家-antrun-插件
  3. EXEC-行家-插件
  4. 行家-antrun-插件
  5. maven-remote-resources-plugin,jaxb2-maven-plugin
  6. 行家-Javadoc的插件
  7. EXEC-行家-插件
  8. 我必须使用JDK 6,所以使用Maven 3.2.1。

    在pom文件中,我为上面的#1,#2,#3,#4,#7定义了5个不同的配置文件(配置文件ID:p1,p2,p3,p4,p5)。 我正在使用多个命令构建我的项目:

    1. mvn exec:exec -Dp1(上面#1)
    2. mvn antrun:run -Dp2 exec:exec -Dp3(for#2 and#3)
    3. mvn antrun:run -Dp4(上面的#4)
    4. mvn clean install(适用于#5,#6以及编译类)
    5. mvn exec:exec -Dp5(上面#7)
    6. 使用多个命令构建工作正常,但是是否可以使用一个命令执行所有步骤,即mvn clean install?

      我的理解是,不可能以非连续顺序多次执行exec-maven-plugin,因此我使用了配置文件,然后使用配置文件ID执行每个步骤。参考: Maven maven-exec-plugin multiple execution configurations

1 个答案:

答案 0 :(得分:0)

  

我的理解是,不可能以非连续顺序多次执行exec-maven-plugin,因此我使用了配置文件,然后使用配置文件ID执行每一步。

从命令行执行显式目标调用时,elsewhere提到的“配置文件技巧”仅

但是,从我收集的内容来看,您宁愿将目标作为正常mvn clean install的一部分执行。在这种情况下,你很幸运:在bind each goal to an appropriate phase中只需default lifecycle。根据您的步骤操作,您可以例如将<execution> exec:exec的第一个generate-sources(步骤1)绑定到<execution>阶段。如果antrun:antrun的第一个process-sources(步骤2)然后绑定到install阶段,它将在步骤1之后被调用,因为它执行绑定到所有阶段的目标,直到mvn install

使用单个mvn构建这样的项目是Maven的目的;必须打五次package才能建立一个项目绝对不是Maven Way。

话虽如此,如果您的所有步骤在逻辑上属于<execution>阶段,您可能会分阶段运行。在这种情况下,步骤将按照pom.xml中列出sun.misc.Unsafe.getX()元素的顺序执行。