[ 
http://jira.codehaus.org/browse/MNG-4770?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=232324#action_232324
 ] 

Ove Gram Nipen commented on MNG-4770:
-------------------------------------

Thanks, I'll look into that.

> WSDL dependencies should not be transitive
> ------------------------------------------
>
>                 Key: MNG-4770
>                 URL: http://jira.codehaus.org/browse/MNG-4770
>             Project: Maven 2 & 3
>          Issue Type: Bug
>          Components: Dependencies
>    Affects Versions: 2.2.x (to be reviewed)
>            Reporter: Ove Gram Nipen
>            Assignee: Benjamin Bentmann
>
> Some web service frameworks, such as CXF, lets you deploy wsdl artifacts in 
> the maven repository. When another project (the client) depends on a wsdl 
> artifact, the client should not receive the dependencies of the web service 
> project transitively, since the web service is isolated. 
> It is not possible to work around the problem by declaring the dependencies 
> of the web service project as optional, since this leads to missing jar files 
> in the web service's {{WEB-INF/lib}}. 
> More specifically: 
> Say you have a service called {{HelloService}}, defined in its own pom: 
> {code}
> <project>
>       <groupId>com.example</groupId>
>       <artifactId>HelloService</artifactId>
>       <version>1.0</version>
>       <packaging>war</packaging>
>       <dependencies>
>               <dependency>
>                       <dependency>
>                       <groupId>org.springframework</groupId>
>                       <artifactId>spring-core</artifactId>
>                       <version>2.5.6</version>
>               </dependency>
>       ...
> </project>
> {code}
> {{HelloService}} uses the {{cxf-java2ws-plugin}}, which generates a wsdl file 
> and installs it in the maven repository during {{mvn install}}. 
> You then have a client project called {{HelloConsumer}}, defined in its own 
> pom: 
> {code}
> <project>
>       <groupId>org.something</groupId>
>       <artifactId>HelloConsumer</artifactId>
>       <packaging>war</packaging>
>       <dependencies>
>               <dependency>
>                       <groupId>com.example</groupId>
>                       <artifactId>HelloService</artifactId>
>                       <version>1.0</version>
>                       <type>wsdl</type>
>               </dependency>
>       ...
> </project>
> {code}
> {{HelloConsumer}} would then use the {{maven-dependency-plugin}} together 
> with the {{cxf-codegen-plugin}} to copy the wsdl locally and generate the 
> necessary web service stubs. 
> If you then do {{mvn dependency:tree}} on {{HelloConsumer}}, you would expect 
> to see only {{HelloService}}, not spring, because {{HelloService}} and 
> {{HelloConsumer}} are isolated from each other by the web service transport 
> layer, most often http. *However, maven currently includes spring 
> transitively*, which is wrong.

-- 
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

        

Reply via email to