sid*_*dev 10
我想你想在父pom中配置插件,但只在继承的项目中使用它.Maven有一个部分 - 在pluginManagement中配置你的插件,但是在你需要时将它们绑定到一个阶段,例如省略pluginManagement中的阶段标记,但是在你继承的pom中指定它.
所以'siddhadev'是完全正确的.您可以使用给定的id在父pom中定义插件配置:
<build>
<pluginManagement>
<plugins>
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
<executions>
<execution>
<id>child-caller</id>
<!-- 'phase' omitted -->
<goals>
<goal>run</goal>
</goals>
<configuration>
<tasks>
<echo message="called from child!" />
</tasks>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</pluginManagement>
</build>
Run Code Online (Sandbox Code Playgroud)
并且,在子POM中,您可以明确列出应该调用它的阶段:
<build>
<plugins>
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
<executions>
<execution>
<id>child-caller</id>
<phase>compile</phase>
</execution>
</executions>
</plugin>
</plugins>
</build>
Run Code Online (Sandbox Code Playgroud)
我用它来定位各种JRE.不幸的是,因为你不能将maven-compiler-plugin与不同的目标目录一起使用(我认为它是插件中的一个bug),你必须使用Ant.
这不完全是你所追求的,但我认为它对你来说足够好.
如果您在父级的pluginManagement标记中声明插件,那么任何声明该插件的子项目都将继承该配置.
例如,在父声明中,compile插件使用Java 5进行测试编译.
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<executions>
<execution>
<id>test-compile</id>
<goals>
<goal>testCompile</goal>
</goals>
<configuration>
<source>1.5</source>
<target>1.5</target>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</pluginManagement>
Run Code Online (Sandbox Code Playgroud)
然后在一个子代中,您可以简单地声明编译器插件,并继承父代的配置:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
</plugin>
</plugins>
</build>
Run Code Online (Sandbox Code Playgroud)
您可以在顶级 pom 声明一个插件并告诉它被跳过,然后告诉它在子级别不被跳过。它不是完全自动的,但覆盖的冗长程度非常小。
Parent Pom,禁用插件,但声明所有配置:
<plugin>
<groupid>org.apache.maven.plugins</groupid>
<artifactid>maven-surefire-plugin</artifactid>
<configuration>
<skip>true</skip>
...lots more config...
...lots more config...
...lots more config...
</configuration>
</plugin>
Run Code Online (Sandbox Code Playgroud)
子 Pom,启用插件:
<plugin>
<groupid>org.apache.maven.plugins</groupid>
<artifactid>maven-surefire-plugin</artifactid>
<configuration>
<skip>false</skip>
</configuration>
</plugin>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8115 次 |
| 最近记录: |