[ 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