[
https://jira.codehaus.org/browse/MNG-5214?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=285355#comment-285355
]
Benson Margulies commented on MNG-5214:
---------------------------------------
Got it.
public File findArtifact( Artifact artifact )
{
String projectKey = ArtifactUtils.key( artifact.getGroupId(),
artifact.getArtifactId(), artifact.getVersion() );
MavenProject project = projectsByGAV.get( projectKey );
if ( project != null )
{
File file = find( project, artifact );
if ( file == null && project != project.getExecutionProject() )
{
file = find( project.getExecutionProject(), artifact );
}
return file;
}
return null;
}
This is a recipe for disaster.
> Dependency resolution substitutes g:a:v:jar for j:a:v:something-else when
> something-else isn't in the reactor
> -------------------------------------------------------------------------------------------------------------
>
> Key: MNG-5214
> URL: https://jira.codehaus.org/browse/MNG-5214
> Project: Maven 2 & 3
> Issue Type: Bug
> Components: Dependencies
> Affects Versions: 3.0
> Reporter: Benson Margulies
>
> Start with:
> https://svn.apache.org/repos/asf/cxf/trunk
> Put some pergem space into MAVEN_OPTS (http://cxf.apache.org/building.html)
> run mvn -Pfastinstall
> Now, cd to systests/wsdl_maven
> Run mvn site:site
> Here's what's happening under the covers. The first child module has an
> execution of the CXF java2ws plugin in 'process-classes'. The second module
> has an execution of the CXF codegen plugin in 'generate-sources'.
> The first module creates, and attaches, an artifact:
> org.apache.cxf.systests.wsdl_maven:cxf-systests-java2ws:(v):wsdl.
> The second module declares it as a dependency.
> In a multi-module project, one module has a plugin execution in phase
> 'process-classes' that produces an attached artifact (with type 'wsdl').
> The site lifecycle does not, by default, include process-classes. So the wsdl
> isn't in the reactor, but it's cousin the 'jar' is.
> When the codegen plugin calls the artifact resolver, it expects to get an
> error, or, better yet, a copy of that wsdl from the local repo or the apache
> snapshot repo. Instead, the resolver 'resolves' the artifact to the
> corresponding 'jar' in the reactor. Calling getFile() returns the
> target/classes directory.
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira