Without the maven enforce rule “requireReleaseDeps” and without the 
<type>test-jar</type> in the pom.xml of the test-child “mvn clean package” 
failed as predicted.

Without the maven enforce rule “requireReleaseDeps” and with the 
<type>test-jar</type> “mvn clean package” and “mvn clean compile” succeeded.

With the maven enforce rule “requireReleaseDeps” and with the 
<type>test-jar</type> in the pom.xml of the test-child “mvn clean package” 
succeeded but “mvn clean compile” failed because of the missing 
test:test-parent:jar:tests. But since the scope is set <scope>test</scope> this 
shouldn't matter, should it?

Best regards

Matthias

> Gesendet: Donnerstag, 30. Januar 2014 um 17:13 Uhr
> Von: "Karl Heinz Marbaise" <khmarba...@gmx.de>
> An: users@maven.apache.org
> Betreff: Re: maven-enforcer-plugin problems with test dependency in multi 
> module project
>
> Hi,
> 
> based on the error message you have a dependency on your test-jar 
> project but you defined the dependency a little bit wrong:
> 
> test:test-child:jar:1.0.0: Failure to find test:test-parent:jar:tests:1.0.0
> 
> This shows that you have defined a dependency in the test-parent but 
> like this:
> 
>   <dependencies>
>      <dependency>
>        <groupId>test</groupId>
>        <artifactId>test-parent</artifactId>
>        <version>1.0-SNAPSHOT</version>
>       <scope>test</scope>
>      </dependency>
>   </dependencies>
> 
> BUT you have to give the type in this case like this:
> 
>   <dependencies>
>      <dependency>
>        <groupId>test</groupId>
>        <artifactId>test-parent</artifactId>
>        <version>1.0-SNAPSHOT</version>
>       <type>test-jar</type>
>       <scope>test</scope>
>      </dependency>
>   </dependencies>
> 
> Best test is to comment out the maven-enforcer-rule and try to build 
> your project just from the parent via
> 
> 
> mvn clean package
> 
> I assume in your case without the above fix your project will not build.
> If it will you need to clean out your local repository first and retry it...
> 
> 
> Kind regards
> Karl Heinz Marbaise
> 
>  > Hi,
> >
> > I have a multi-module-project with one module that implements classes for 
> > testing (test-parent) and another module (test-child) that uses theses 
> > classes. There is a dependency in test scope from the test-child to the 
> > test-parent.
> > (See article 
> > http://stackoverflow.com/questions/1725476/maven-test-dependency-in-multi-module-project
> >  and 
> > http://maven.apache.org/guides/mini/guide-attached-tests.html[http://maven.apache.org/guides/mini/guide-attached-tests.html])
> > The pom of the depending test-child contains the following code:
> >
> > <dependencies>
> >    <dependency>
> >      <groupId>test</groupId>
> >      <artifactId>test-parent</artifactId>
> >      <version>1.0-SNAPSHOT</version>
> >      <type>test-jar</type>
> >      <scope>test</scope>
> >    </dependency>
> > </dependencies>
> >
> > The test-parent module that contains the derived classes contains the 
> > following code:
> >
> > <plugins>
> >    <plugin>
> >      <artifactId>maven-jar-plugin</artifactId>
> >      <version>2.2</version>
> >      <executions>
> >        <execution>
> >          <goals>
> >            <goal>test-jar</goal>
> >          </goals>
> >          <phase>test-compile</phase>
> >        </execution>
> >      </executions>
> >    </plugin>
> > </plugins>
> >
> > In a parent pom the maven-enforcer-plugin is included and the 
> > RequireReleaseDeps rule is added to the list of rules. While running the 
> > Maven goal “compile”  the project compilation of the test-child fails with 
> > the following message:
> > [ERROR] Failed to execute goal 
> > org.apache.maven.plugins:maven-enforcer-plugin:1.3.1:enforce (default) on 
> > project test-child: Execution default of goal 
> > org.apache.maven.plugins:maven-enforcer-plugin:1.3.1:enforce failed: 
> > org.apache.maven.shared.dependency.graph.DependencyGraphBuilderException: 
> > Could not resolve dependencies for project test:test-child:jar:1.0.0: 
> > Failure to find test:test-parent:jar:tests:1.0.0
> > It seems that Maven checks the dependencies of type and scope “test” in the 
> > compile phase. In the case the test-jar is build in the test-compile and is 
> > not present yet. This leads to the error.
> > If I remove the RequireReleaseDeps from the rules it works fine.
> > Here is the simplified config of the maven-enforcer-plugin:
> >
> > <pluginManagement>
> >    <plugins>
> >      <plugin>
> >        <groupId>org.apache.maven.plugins</groupId>
> >        <artifactId>maven-enforcer-plugin</artifactId>
> >        <version>${maven-enforcer-plugin.version}</version>
> >        <inherited>true</inherited>
> >        <executions>
> >          <execution>
> >            <goals><goal>enforce</goal></goals>
> >          </execution>
> >        </executions>
> >        <configuration>
> >          <!-- <skip/> -->
> >          <rules>
> >            <requireReleaseDeps>
> >              <onlyWhenRelease>false</onlyWhenRelease>
> >            </requireReleaseDeps>
> >            <requireMavenVersion>
> >              <version>[3.0.4,]</version>
> >            </requireMavenVersion>
> >          </rules>
> >          <fail>${maven-enforcer-plugin.fail}</fail>
> >        </configuration>
> >      </plugin>
> >    </plugins>
> > </pluginManagement>
> >    <plugins>
> >      <plugin>
> >         <groupId>org.apache.maven.plugins</groupId>
> >        <artifactId>maven-enforcer-plugin</artifactId>
> >      </plugin>
> >    </plugins>
> > </build>
> >
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscr...@maven.apache.org
> For additional commands, e-mail: users-h...@maven.apache.org
> 
>

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@maven.apache.org
For additional commands, e-mail: users-h...@maven.apache.org

Reply via email to