2017-07-16 67 views
0

我必须执行以下在我的Maven构建的步骤,在下文提到的具体顺序:Maven构建多Exec插件执行,Ant任务

  1. 的exec-Maven的插件
  2. Maven的antrun-插件
  3. EXEC-行家-插件
  4. 行家-antrun-插件
  5. 行家-远程资源-插件,JAXB2-行家-插件
  6. 行家-Javadoc的插件
  7. 的exec-Maven的插件

我不得不使用JDK 6,那么使用Maven 3.2.1。

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

  1. MVN高管:EXEC -Dp1(上面#1)
  2. MVN antrun:运行-Dp2 EXEC:EXEC -Dp3(以上#2,#3 )
  3. MVN antrun:运行-Dp4(以上#4)
  4. MVN干净安装(为#5,#6的上方和编译的类)
  5. MVN EXEC:EXEC -Dp5(上面#7)

构建工作正常与多个命令,但它可以执行所有步骤使用一个命令,即mvn干净安装?

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

回答

0

我明白了什么,它是不可能有非连续顺序的exec-Maven的插件的多个执行,所以我使用的配置文件,然后执行使用配置文件ID每一步。提到elsewhere

“档案绝招”是在命令行中执行明确的目标,调用时需要。

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

建立一个这样的项目与一个单一的mvn install是Maven的设计目的;不得不拨打mvn五次来构建一个项目绝对不是Maven之路。

这就是说,如果您的所有步骤在逻辑上属于,例如package阶段,那么您可能会用完阶段。在这种情况下,这些步骤按中列出<execution>元素的顺序执行。