Jeff Thomas created AXIS2-5783:
----------------------------------

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