Emmanuel, I ran more tests and uploaded the document with results, shell scripts, etc. to my sandbox.
I'll paste it below as well. QUICK SUMMARY: Created a parent project, L0Project, with a dependencyManagement section with commons-utils version 2.11. Create a child project, L1Project, with a dependency on 3.2 and a test that loads AbstractBagDecorator. This runs fine. (Emmanuel I could run other combinations, but I think this should cover all of them?) HOWEVER - If you try to import L1Project into eclipse, it will not see the class path to commons-utils 3.2. CONCLUSION Overriding dependencyManagement seems to work fine inside Maven, but the eclipse plugin needs to support it as well. OK - Here's the apt document with shell scripts etc. that I ran for testing. It's also in my sandbox here: https://svn.apache.org/repos/asf/directory/sandbox/oersoy/maven-testing/eclipse-maven-testing.apt ------------------------------------------ Eclipse Maven Testing ------------------------------------------ Challenge See whether we can make a project with packaging set to pom and import it into eclipse. Solution Run the following script ---------------------------------------------------------------- mvn archetype:create -DartifactId=L0Project -DgroupId=test cd L0Project sed -e 's/jar/pom/' pom.xml | sed -e '10,18d' > pom.xml.tmp cat << END >> pom.xml.tmp <dependencyManagement> <dependencies> <dependency> <artifactId>commons-collections</artifactId> <groupId>commons-collections</groupId> <version>2.11</version> <scope>test</scope> </dependency> </dependencies> </dependencyManagement> </project> END mv pom.xml.tmp pom.xml cd L0Project mvn eclipse:eclipse ---------------------------------------------------------------- Result The script runs fine, but the eclipse plugin does did not create an eclipse importable project, and it tells us that it does not like this: Not running eclipse plugin goal for pom project. Follow Up Hopefully there is a way to switch this so that it does. It would have been really nice for editing the dependencyManagement section of a parent pom. I'll check on Maven Users to see whether anyone knows how. Challenge See whether we can set a dependency version in the dependency management section of a pom and then override it on a child pom. Solution Run the following script ---------------------------------------------------------------- mvn archetype:create -DartifactId=L0Project -DgroupId=test cd L0Project sed -e 's/jar/pom/' pom.xml | sed -e '10,18d' > pom.xml.tmp cat << END >> pom.xml.tmp <dependencyManagement> <dependencies> <dependency> <artifactId>commons-collections</artifactId> <groupId>commons-collections</groupId> <version>2.11</version> <scope>test</scope> </dependency> </dependencies> </dependencyManagement> </project> END mv pom.xml.tmp pom.xml mvn archetype:create -DartifactId=L1Project -DgroupId=test pushd L1Project sed -e '20,21d' pom.xml > pom.xml.tmp cat << END >> pom.xml.tmp <dependency> <artifactId>commons-collections</artifactId> <groupId>commons-collections</groupId> <version>3.2</version> <scope>test</scope> </dependency> </dependencies> </project> END mv pom.xml.tmp pom.xml pushd src/test/java/test cat << END > AppTest.java package test; import org.apache.commons.collections.bag.AbstractBagDecorator; import junit.framework.Test; import junit.framework.TestCase; import junit.framework.TestSuite; /** * Unit test for simple App. */ public class AppTest extends TestCase { /** * Create the test case * * @param testName name of the test case */ public AppTest( String testName ) { super( testName ); } /** * @return the suite of tests being tested */ public static Test suite() { return new TestSuite( AppTest.class ); } /** * Rigourous Test :-) */ public void testApp() { AbstractBagDecorator emannuelsBagDecorator; assertTrue( true ); } } END popd popd mvn eclipse:eclipse mvn test ---------------------------------------------------------------- Result The test runs fine. Challenge See whether we can import the L1Project into eclipse and have the AbstractBagDecorator that the AppTest needs loaded successfully. Solution Import the L1Project into eclipse. Result The AbstractBagDecorator does not load. Follow Up Check with Maven Dev to see whether this is a known bug. ____________________________________________________________________________________ Have a burning question? Go to www.Answers.yahoo.com and get answers from real people who know.
