2017-03-20 105 views
0

我嘗試閱讀並理解maven的配置文件頁面,但我無法弄清楚如何在if-else-context中使用配置文件來滿足我的需要。Maven:根據配置文件執行cli命令(if else)

在我工作的一個已經給出了下面的代碼項目的pom.xml中:

<build> 
    <pluginManagement> 
     <plugins> 
      <plugin> 
       <groupId>com.github.eirslett</groupId> 
       <artifactId>frontend-maven-plugin</artifactId> 
       <version>${frontend-maven-plugin.version}</version> 
        <executions> 
        <execution> 
         <id>npm build</id> 
         <goals> 
          <goal>npm</goal> 
         </goals> 
         <configuration> 
          <arguments>run build</arguments> 
         </configuration> 
        </execution> 
       </executions> 
... 

我想實現像(僞代碼)

if (profile(debug)){ 
    <arguments>run build-debug</arguments> 
} else { 
    <arguments>run build</arguments> 
} 

如何我可以用maven做這個嗎?

回答

1

首先,您必須聲明2個配置文件。讓我們說「調試」和「產品」。您必須在每個配置文件中使用相應的參數編寫整個插件聲明。

喜歡的東西:

<profiles> 
    <profile> 
    <id>prod</id> 
    <activation> 
     <activeByDefault>true</activeByDefault> 
    </activation> 
     <build> 
      <plugins> 
       <plugin> 
       <groupId>com.github.eirslett</groupId> 
       <artifactId>frontend-maven-plugin</artifactId> 
       <version>${frontend-maven-plugin.version}</version> 
       ... 
       <arguments>run build</arguments> 
       </plugin> 
      </plugins> 
     </build> 
    </profile> 
    <profile> 
    <id>debug</id> 
     <build> 
      <plugins> 
       <plugin> 
       <groupId>com.github.eirslett</groupId> 
       <artifactId>frontend-maven-plugin</artifactId> 
       <version>${frontend-maven-plugin.version}</version> 
       ... 
       <arguments>run build-debug</arguments> 
       </plugin> 
      </plugins> 
     </build> 
    </profile> 
</profiles> 

注意,如果沒有明確的配置文件設置prod配置文件將被激活。要運行調試配置文件,請運行:

mvn package -P debug 

您不能用if-else實現它,因爲這不是構建配置文件的方式。

+0

謝謝。這有助於我更好地理解Maven配置。 – phip1611