Maven:根据配置文件执行cli命令(如果不是)

时间:2017-03-20 12:46:28

标签: maven build

我试图阅读并理解maven的个人资料页面,但我无法弄清楚如何在if-else-context中使用个人资料以满足我的需求。

我正在工作的项目中的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 个答案:

答案 0 :(得分:1)

首先,您必须声明2个配置文件。让我们说&#34;调试&#34;和&#34; prod&#34;。您必须使用相应的参数在每个配置文件中编写整个插件声明。

类似的东西:

<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实现它,因为这不是构建配置文件的方式。