2017-08-02 79 views
0

我正在使用Maven 3.3.9。 對於具有不同配置的相同插件,是否可以有相同的目標? 我的意思是這樣具有不同配置的相同插件

<build> 
    ... 
    <pluginManagement> 
    <plugins> 
     <plugin> 
      <groupId>org.codehaus.mojo</groupId> 
      <artifactId>exec-maven-plugin</artifactId> 
      <version>1.6.0</version> 
      <executions> 
       <execution> 
       <id>test1</id> 
       <goals> 
        <goal>exec</goal> 
       </goals> 
       </execution> 
      </executions> 
      <configuration> 
       <executable>dir</executable> 
      </configuration> 
     </plugin> 
     <plugin> 
      <groupId>org.codehaus.mojo</groupId> 
      <artifactId>exec-maven-plugin</artifactId> 
      <version>1.6.0</version> 
      <executions> 
       <execution> 
       <id>test2</id> 
       <goals> 
        <goal>exec</goal> 
       </goals> 
       </execution> 
      </executions> 
      <configuration> 
       <executable>cd</executable> 
      </configuration> 
     </plugin> 
    </plugins> 
    </pluginManagement> 
</build> 

如果我把<execution><configuration>標籤,它只是被忽略。

加上標籤<goalPrefix>不工作,所以我不知道如何別名目標來區分他們...

編輯

我需要執行兩個不同的腳本,我做了,但只是作爲一個cli目標......腳本在代碼上運行一些測試,但測試是可選的,只有程序員明確要運行它們時才必須執行它們。

我想在Maven來將那些腳本嵌入的原因是因爲我想用${project.build.directory}變量

+0

你會用它做什麼?一世 – Jens

回答

2

是的,它是。但是,您通常會將它們全部包含在同一個插件定義中。我們這樣做是爲了實現樹震動,提前編譯和縮小我們的項目中的angular2 UI。我們的配置如下所示:

  <plugins> 
       <plugin> 
        <groupId>com.github.eirslett</groupId> 
        <artifactId>frontend-maven-plugin</artifactId> 
        <version>1.0</version> 
        <executions> 
         <execution> 
          <id>npm run typescript compiler</id> 
          <phase>compile</phase> 
          <goals> 
           <goal>npm</goal> 
          </goals> 
          <configuration> 
           <arguments>run compile_ts_ngc</arguments> 
          </configuration> 
         </execution> 

         <execution> 
          <id>rollup</id> 
          <phase>compile</phase> 
          <goals> 
           <goal>npm</goal> 
          </goals> 
          <configuration> 
           <arguments>run rollup</arguments> 
          </configuration> 
         </execution> 

         <execution> 
          <id>gulp build</id> 
          <phase>compile</phase> 
          <goals> 
           <goal>gulp</goal> 
          </goals> 
          <configuration> 
           <arguments>aot</arguments> 
          </configuration> 
         </execution> 
        </executions> 
       </plugin> 
      </plugins> 

正如您所看到的,我們在編譯階段運行了兩個不同的npm命令。它們按照從上到下的順序運行。

我不完全確定你正在試圖與他們區分它們嗎?這是爲了訂購目的還是一些條件執行?通常我們會將需要在特定條件下運行的單獨任務放入配置文件中,以便您可以輕鬆指定何時運行它們。

相關問題