2017-07-16 86 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>元素的順序執行。