[
https://issues.apache.org/jira/browse/SIS-34?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13414104#comment-13414104
]
Ross Laidlaw edited comment on SIS-34 at 7/13/12 11:11 PM:
-----------------------------------------------------------
I had a look into this issue. It seems that several other Apache projects have
encountered the same problem. For example see RAVE-63.
The parent Apache POM sets up the maven-remote-resources-plugin, which imports
the LICENSE, NOTICE and DEPENDENCIES files from the apache-jar-resource-bundle.
Then for each POM in our project, this plugin puts the files into a
'target/maven-shared-archive-resources' folder. The plugin also copies these
files to the 'target/classes/META-INF' folder. For jars this is perfect,
because the build then copies everything in 'target/classes' to the jar top
level. But for wars, everything in 'target/classes' gets copied to
'WEB-INF/classes'. That's why we end up with the LICENSE, NOTICE and
DEPENDENCIES files in 'WEB-INF/classes/META-INF/'.
To get around the problem, the Rave guys (Ravers?) added the following code to
their top-level POM (see
http://svn.apache.org/viewvc/rave/rave-master-pom/trunk/pom.xml ):
{code}
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<configuration>
<!--
copy legal files added/appended by maven-remote-resources-plugin
from /WEB-INF/classes/META-INF/ to root /META-INF folder as expected
for war artifacts, see RAVE-168
-->
<webResources>
<resource>
<directory>${project.build.directory}/classes/META-INF</directory>
<includes>
<include>LICENSE</include>
<include>NOTICE</include>
<include>DEPENDENCIES</include>
</includes>
<targetPath>META-INF</targetPath>
<filtering>false</filtering>
</resource>
</webResources>
<!--
exclude legal files added/appended by maven-remote-resources-plugin
under /WEB-INF/classes/META-INF/ as for war artifacts these should
(see above)
be provided under /META-INF/ instead, see RAVE-168
-->
<packagingExcludes>
WEB-INF/classes/META-INF/LICENSE,
WEB-INF/classes/META-INF/NOTICE,
WEB-INF/classes/META-INF/DEPENDENCIES
</packagingExcludes>
</configuration>
</plugin>
</plugins>
</build>
{code}
I tried adding something similar to the sis-parent POM. It seems to work. The
webResources configuration adds the META-INF files to the top level of the war
and the 'packagingExcludes' part removes the LICENSE, NOTICE and DEPENDENCIES
files from WEB-INF/classes/META-INF.
Would this be a suitable workaround for SIS? Seems like this code is still
very much part of the Rave project.
was (Author: rlaidlaw):
I had a look into this issue. It seems that several other Apache projects
have encountered the same problem. For example see RAVE-63.
The parent Apache POM sets up the maven-remote-resources-plugin, which imports
the LICENSE, NOTICE and DEPENDENCIES files from the apache-jar-resource-bundle.
Then for each POM in our project, this plugin puts the files into a
'target/maven-shared-archive-resources' folder. The plugin also copies these
files to the 'target/classes/META-INF' folder. For jars this is perfect,
because the build then copies everything in 'target/classes' to the jar top
level. But for wars, everything in 'target/classes' gets copied to
'WEB-INF/classes'. That's why we end up with the LICENSE, NOTICE and
DEPENDENCIES files in 'WEB-INF/classes/META-INF/'.
To get around the problem, the Rave guys (Ravers?) added the following code to
their top-level POM (see
http://svn.apache.org/viewvc/rave/rave-master-pom/trunk/pom.xml):
{code}
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<configuration>
<!--
copy legal files added/appended by maven-remote-resources-plugin
from /WEB-INF/classes/META-INF/ to root /META-INF folder as expected
for war artifacts, see RAVE-168
-->
<webResources>
<resource>
<directory>${project.build.directory}/classes/META-INF</directory>
<includes>
<include>LICENSE</include>
<include>NOTICE</include>
<include>DEPENDENCIES</include>
</includes>
<targetPath>META-INF</targetPath>
<filtering>false</filtering>
</resource>
</webResources>
<!--
exclude legal files added/appended by maven-remote-resources-plugin
under /WEB-INF/classes/META-INF/ as for war artifacts these should
(see above)
be provided under /META-INF/ instead, see RAVE-168
-->
<packagingExcludes>
WEB-INF/classes/META-INF/LICENSE,
WEB-INF/classes/META-INF/NOTICE,
WEB-INF/classes/META-INF/DEPENDENCIES
</packagingExcludes>
</configuration>
</plugin>
</plugins>
</build>
{code}
I tried adding something similar to the sis-parent POM. It seems to work. The
webResources configuration adds the META-INF files to the top level of the war
and the 'packagingExcludes' part removes the LICENSE, NOTICE and DEPENDENCIES
files from WEB-INF/classes/META-INF.
Would this be a suitable workaround for SIS? Seems like this code is still
very much part of the Rave project.
> LICENSE/NOTICE file is in incorrect location in SIS webapp
> ----------------------------------------------------------
>
> Key: SIS-34
> URL: https://issues.apache.org/jira/browse/SIS-34
> Project: Spatial Information Systems
> Issue Type: Bug
> Components: build process
> Reporter: Kevan Miller
> Assignee: Chris A. Mattmann
> Priority: Critical
> Fix For: 0.2-incubating
>
>
> Per [~kevan]:
> {quote}
> The LICENSE/NOTICE files in sis-webapp-0.2-incubating.war are not in the
> correct location (WEB-INF/classes/META-INF/LICENSE) which is minor, IMO.
> {quote}
> Need to update Maven to put them in the right place.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira