[ http://jira.codehaus.org/browse/MDEP-213?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=221929#action_221929 ]
Jim Sellers commented on MDEP-213: ---------------------------------- As a work around I created a groovy script that will that: 1) take the pom, copy it to the target directory 2) remove the dependencyManagement tags so that the pom just has dependencies 3) run dependency:resolve on that modified pom, failing the build if dependency:resolve fails. In the pom: {noformat} <build> <plugins> <plugin> <groupId>org.codehaus.groovy.maven</groupId> <artifactId>gmaven-plugin</artifactId> <executions> <execution> <phase>generate-test-sources</phase> <goals> <goal>execute</goal> </goals> <configuration> <source>${pom.basedir}/src/main/script/resolveDepMgmt.groovy</source> </configuration> </execution> </executions> </plugin> </plugins> </build> {noformat} The contents of resolveDepMgmt.groovy is: {noformat} import org.apache.commons.lang.SystemUtils log.info('About to run check on the dependency management section...') // read the pom, remove the dependencyManagement tags File sourceFile = new File('pom.xml') String text = sourceFile.text.replaceAll('<dependencyManagement>', '').replaceAll('</dependencyManagement>', '') // make the outputDirectory if it does not exist File outputDir = new File('target') if (!outputDir.exists()) outputDir.mkdirs() File ouputFile = new File(outputDir.getAbsolutePath() + '/pom-only-dependencies.xml') ouputFile.write(text) String mvnCommand = "mvn dependency:resolve -f " + ouputFile.getAbsolutePath() // because mvn is not an executable program on windows if (SystemUtils.IS_OS_WINDOWS) mvnCommand = 'cmd /c ' + mvnCommand outputCatcher = new StringBuffer() errorCatcher = new StringBuffer() proc = mvnCommand.execute() proc.consumeProcessOutput(outputCatcher, errorCatcher) proc.waitFor() // print the output / errors to the screen println outputCatcher // have the calling process share the exit value of the maven command if there was an error if (0 != proc.exitValue()) fail('failed resolving dependencies') {noformat} > resolve dependencyManagement section with option to fail the build > ------------------------------------------------------------------ > > Key: MDEP-213 > URL: http://jira.codehaus.org/browse/MDEP-213 > Project: Maven 2.x Dependency Plugin > Issue Type: New Feature > Components: resolve > Affects Versions: 2.0 > Reporter: Jim Sellers > Assignee: Brian Fox > > When using the dependencyManagement section of a pom of type "pom" to create > a bill of materials, it's currently possible to specify an invalid version. > eg: > {code:xml} > <dependencyManagement> > <dependencies> > <dependency> > <groupId>commons-logging</groupId> > <artifactId>commons-logging</artifactId> > <version>9.9</version> > </dependency> > </dependencies> > </dependencyManagement> > {code} > It would be really useful for these types of pom's to be able to force all > the dependencies to be resolved when running something like "install" and > have that fail the build. -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://jira.codehaus.org/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira