[ 
https://issues.apache.org/jira/browse/AXIS2-5783?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15323722#comment-15323722
 ] 

Jeff Thomas commented on AXIS2-5783:
------------------------------------

Hi Andreas, 
thanks for the tip on MWAR 193.
After looking at the source code of the maven-war-plugin 
(ArtifactsPackagingTask) I noticed that MAR artifacts configured as *optional* 
are not added to the WAR.  I tested this and it works like a charm.

The only other caveat is that the MAR plugins have to be defined with scope 
*runtime* for them to be picked up by the 'axis2-repo-maven-plugin'. 

So a working dependency in this case is:

{code:xml}
    <!-- Axis2 MAR (module-archive): AXIS2 addressing module. -->
    <dependency>
      <groupId>org.apache.axis2</groupId>
      <artifactId>addressing</artifactId>
      <version>1.7.3</version>
      <type>mar</type>
      <scope>runtime</scope>
      <optional>true</optional>
    </dependency>
{code}

Maybe you want to add a hint to your ^^ blog post? :) I know as I was looking 
at this problem while googling there were a few other people with the same 
problem.

With this configuration, I no longer need to patch my 'axis2-repo-maven-plugin' 
MOJO for this problem.  

>From my side the issue can be closed.

> Maven axis2-repo-maven-plugin + Maven WAR plugin with *.mar artifacts
> ---------------------------------------------------------------------
>
>                 Key: AXIS2-5783
>                 URL: https://issues.apache.org/jira/browse/AXIS2-5783
>             Project: Axis2
>          Issue Type: Improvement
>          Components: Tools
>    Affects Versions: 1.7.3
>            Reporter: Jeff Thomas
>            Priority: Trivial
>             Fix For: 1.7.4, 1.8.0
>
>
> I have a conflict currently between the 'axis2-repo-maven-plugin' and the 
> 'maven-war-plugin'.
> At some point someone upgraded the Maven WAR plugin so that it automatically 
> packs any "<type>mar</type>" runtime dependency into the resulting WAR.  
> Unfortunately it is also not possible to disable this "feature" on the 
> maven-war-plugin.
> I *want* to use the axis2-repo-maven-plugin to place different ".mar" 
> artifacts into two *different* Axis2 repositories in the same WAR (i.e. 
> WEB-INF/modules and WEB-INF/client/modules).  While the 
> axis2-repo-maven-plugin does its job perfectly, the WAR plugin always runs 
> last and packs *ALL* MAR artifacts into WEB-INF/modules.
> My "workaround" which is most likely not release-viable was to change the 
> axis2-repo-maven-plugin CreateRepositoryMojo.java so that it works on MAR 
> artifacts with scope "provided" instead of "runtime" and 
> "@requiresDependencyResolution compile" instead of "runtime".  This keeps the 
> WAR plugin from packing them automatically and allows me to run two separate 
> executions for my two repositories.
> {code:java}
> /**
>  * Creates an Axis2 repository from the project's runtime dependencies. This 
> goal is typically
>  * used to build an Axis2 repository that will be packaged into some kind of 
> distribution.
>  * 
>  * @goal create-repository
>  * @phase package
>  * @requiresDependencyResolution compile
>  */
> public class CreateRepositoryMojo extends AbstractCreateRepositoryMojo {
>     /**
>      * The output directory where the repository will be created.
>      * 
>      * @parameter default-value="${project.build.directory}/repository"
>      */
>     private File outputDirectory;
>     
>     @Override
>     protected String getScope() {
>         return Artifact.SCOPE_PROVIDED;
>     }
>     @Override
>     protected File getOutputDirectory() {
>         return outputDirectory;
>     }
> }
> {code}
> I am not sure what a release-viable solution would look like...or even if it 
> is a concern for this plugin(?!?).  The best-possible solution would be an 
> option to exclude .mar artifacts in the maven-war-plugin ... but if possible 
> I want to get away from having to customize the Axis2 Plugin with every new 
> release.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: java-dev-unsubscr...@axis.apache.org
For additional commands, e-mail: java-dev-h...@axis.apache.org

Reply via email to