[
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: [email protected]
For additional commands, e-mail: [email protected]