sis-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Ross Laidlaw (JIRA)" <j...@apache.org>
Subject [jira] [Comment Edited] (SIS-34) LICENSE/NOTICE file is in incorrect location in SIS webapp
Date Fri, 13 Jul 2012 23:12:33 GMT

    [ 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

        

Mime
View raw message