我使用两个maven插件,其中我只想执行一个,具体取决于作为参数传递的属性。
<properties>
<global>false</global>
</properties>
<build>
<plugins>
<plugin>
<groupId>..</groupId>
<artifactId>plugin1-runs-globally</artifactId>
<version>..</version>
<configuration>
<skip>!${global}</skip>
</configuration>
<executions>..</executions>
</plugin>
<plugin>
<groupId>..</groupId>
<artifactId>plugin2-runs-locally</artifactId>
<version>..</version>
<configuration>
<skip>${global}</skip>
</configuration>
<executions>..</executions>
</plugin>
</plugins>
</build>
mvn clean install -Dglobal = true
应该只运行plugin1而不是plugin2而
mvn clean install
应该只运行plugin2而不是plugin1。
但是!$(全球)似乎在语法上是错误的。有人可以帮我解决一下吗?
答案 0 :(得分:1)
据我所知,你不能使用任何布尔类型属性,但我建议你使用配置文件。
您可以做的是创建两个配置文件:
<profiles>
<profile>
<id>non-global</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<build>
<plugins>
<plugin>
<groupId>..</groupId>
<artifactId>plugin1-runs-locally</artifactId>
<version>..</version>
</plugin>
</plugins>
</build>
</profile>
</profiles>
当未指定任何内容时(如此指定),将使用此配置文件。
对于全局插件,您可以拥有一个由maven个人资料ID激活的个人资料。如果您愿意,还可以使用属性激活配置文件。例如,请参阅以下配置。
<profiles>
<profile>
<id>global</id>
<!-- optional -->
<activation>
<property>
<name>global</name>
</property>
</activation>
<!-- optional -->
<build>
<plugins>
<plugin>
<groupId>..</groupId>
<artifactId>plugin2-runs-locally</artifactId>
<version>..</version>
</plugin>
</plugins>
</build>
</profile>
</profiles>
现在,当您想要执行与全局配置文件相关的插件时,您需要做的就是:
mvn clean install -Pglobal
或使用财产时:
mvn clean install -Dglobal
如果您想要执行非全局插件,可以使用
mvn clean install
有关更多背景信息,请参阅maven配置文档。
http://maven.apache.org/guides/introduction/introduction-to-profiles.html