On Tue, 2005-04-26 at 21:00 +0200, Peter van de Hoef wrote: > Hi all, > > I have a question about which elements of the POM are inherited by > derived POM's.
The law on inheritance resides here: http://svn.apache.org/viewcvs.cgi/maven/components/trunk/maven- project/src/main/java/org/apache/maven/project/inheritance/DefaultModelInheritanceAssembler.java?rev=164217&sortdir=down&view=log > 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 directoriy 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. > > 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. > Is this correct? We selectively choose what to inherit and the configuration for the plug-ins are a little trickier because they free form configurations essentially. We need to do a more careful merge of the configurations but this might not work generally so if we need to allow the plugin to determine how a configuration should be inherited then we'll probably have to come up with some way to decide this using notations we have for plugins. Anyway, I see you posted a JIRA issue so we'll take a look at it. -- jvz. Jason van Zyl jason at maven.org http://maven.apache.org People develop abstractions by generalizing from concrete examples. Every attempt to determine the correct abstraction on paper without actually developing a running system is doomed to failure. No one is that smart. A framework is a resuable design, so you develop it by looking at the things it is supposed to be a design of. The more examples you look at, the more general your framework will be. -- Ralph Johnson & Don Roberts, Patterns for Evolving Frameworks --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
