[
https://jira.codehaus.org/browse/MNG-5214?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Benson Margulies updated MNG-5214:
----------------------------------
Description:
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.
was:
This is related to MSITE-622.
In a multi-module project, one module has a plugin execution in phase
'process-classes' that produces an attached artifact (with type 'wsdl').
A second module depends on it, and has another plugin execution in phase
'generate-sources' that depends on the artifact from the first one.
The second project declares this dependency.
When I run site:site, it does not run compile, or process-classes, so the wsdl
artifact is not in the reactor, and then the second plugin can't find it, and
the build fails (and, as per -622, no explanation is shown without -X). (That's
particularly odd, since it should be sitting in the local repo from a previous
build.)
How is something like this supposed to work?
Testcase included: yes
Summary: Dependency resolution substitutes g:a:v:jar for
j:a:v:something-else when something-else isn't in the reactor (was: lifecycle
dependency failure with code generation versus javadocs versus the site plugin)
> 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