Details
-
Type:
Bug
-
Status:
Closed
-
Priority:
Major
-
Resolution: Won't Fix
-
Affects Version/s: 2.0-alpha-1
-
Fix Version/s: None
-
Component/s: Plugins and Lifecycle
-
Labels:None
Description
It appears that the <build> section is (completely) inherited if it is not present in the derived POM, but if a <build> section is specified in the derived POM, everything from the base POM is thrown away and only the settings of the derived POM are used.
In my parent POM I have a <build> section which specifies the source directory and some parameters for the java compiler:
<build>
<sourceDirectory>src</sourceDirectory>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>1.0-alpha-2-SNAPSHOT</version>
<configuration>
<source>1.5</source>
<target>1.5</target>
</configuration>
</plugin>
</plugins>
</build>
In a derived POM, the source directory is different, so a new <build> section is specified:
<build>
<sourceDirectory>module/src</sourceDirectory>
</build>
The overridden source directory is effectuated in this second POM, but it appears that the java compiler settings have disappeared (it starts e.g. complaining about JDK 1.4 features like assertions). If I do not specify a <build> section in the derived POM, the settings of the base POM are inherited.
Issue Links
- is superceded by
-
MNG-362
<pluginManagement> inheritance problem
-
plugin configuration is not inherited; it is managed, so that only the child projects that need a particular plugin will get that plugin's goals injected into its lifecycle.
To use plugin management, add a <pluginManagement/> stanza to your parent POM.
See http://maven.apache.org/maven2/project-descriptor.html for more info.