Hi there,
I'm having a really strange problem related to dependency management. I have
a parent pom with some dependencies declared in the dependency management
section, and a child pom inheriting from it. One of the dependencies is the
testng jar. Here you have excerpts from both files:
Parent pom:
<?xml version="1.0" encoding="UTF-8"?>
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>org.surveyforge</groupId>
<artifactId>surveyforge</artifactId>
<packaging>pom</packaging>
<name>SurveyForge</name>
<version>0.1-SNAPSHOT</version>
[...]
<dependencyManagement>
<dependencies>
[...]
<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<version>4.7</version>
<classifier>jdk15</classifier>
<scope>test</scope>
</dependency>
[...]
</dependencies>
</dependencyManagement>
[...]
</project>
Child pom:
<?xml version="1.0" encoding="UTF-8"?>
<project>
<parent>
<groupId>org.surveyforge</groupId>
<artifactId>surveyforge</artifactId>
<version>0.1-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>surveyforge-classification</artifactId>
<name>SurveyForge Classification API</name>
[...]
<dependencies>
<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
</dependency>
[...]
</dependencies>
[...]
</project>
If I try to run any goal I get with these two files I get the following:
[INFO] Scanning for projects...
[INFO]
------------------------------------------------------------------------
[ERROR] FATAL ERROR
[INFO]
------------------------------------------------------------------------
[INFO] Error building POM (may not be this project's POM).
Project ID: org.surveyforge:surveyforge-classification
POM Location:
U:\proyectos\otros\surveyforge\surveyforge-classification\pom.xml
Validation Messages:
[0] 'dependencies.dependency.version' is missing for org.testng:testng
Reason: Failed to validate POM
[INFO]
------------------------------------------------------------------------
[INFO] Trace
org.apache.maven.reactor.MavenExecutionException: Failed to validate POM
at org.apache.maven.DefaultMaven.getProjects(DefaultMaven.java:365)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:278)
at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:115)
at org.apache.maven.cli.MavenCli.main(MavenCli.java:256)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(
NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(
DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java
:315)
at org.codehaus.classworlds.Launcher.launch(Launcher.java:255)
at org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java
:430)
at org.codehaus.classworlds.Launcher.main(Launcher.java:375)
Caused by: org.apache.maven.project.InvalidProjectModelException: Failed to
validate POM
at
org.apache.maven.project.DefaultMavenProjectBuilder.processProjectLogic(
DefaultMavenProjectBuilder.java:926)
at org.apache.maven.project.DefaultMavenProjectBuilder.buildInternal
(DefaultMavenProjectBuilder.java:737)
at
org.apache.maven.project.DefaultMavenProjectBuilder.buildFromSourceFileInternal
(DefaultMavenProjectBuilder.java:416)
at org.apache.maven.project.DefaultMavenProjectBuilder.build(
DefaultMavenProjectBuilder.java:192)
at org.apache.maven.DefaultMaven.getProject(DefaultMaven.java:515)
at org.apache.maven.DefaultMaven.collectProjects(DefaultMaven.java
:447)
at org.apache.maven.DefaultMaven.collectProjects(DefaultMaven.java
:491)
at org.apache.maven.DefaultMaven.getProjects(DefaultMaven.java:351)
... 11 more
[INFO]
------------------------------------------------------------------------
[INFO] Total time: < 1 second
[INFO] Finished at: Tue Jun 20 12:11:45 CEST 2006
[INFO] Final Memory: 1M/2M
[INFO]
------------------------------------------------------------------------
If I take away the classifier tag in the parent pom maven is able to
validate the pom, but (obviously) fails because it cannot download the jar.
If I include the whole dependency in the child pom and take it away from the
parent pom I also get a correct execution.
Any ideas? Is the classifier tag allowed in the dependency management
section? Is this a bug?
Best regards
Jose