[ http://jira.codehaus.org/browse/MASSEMBLY-64?page=comments#action_61464 ] 

Napoleon Esmundo C. Ramirez commented on MASSEMBLY-64:
------------------------------------------------------

Oh wait, I take that back.  According to 
http://java.sun.com/docs/books/tutorial/deployment/jar/downman.html the 
classpath points to somewhere outside the uberjar.  Therefore, the jars inside 
the uberjar can only be seen if located programmatically (not good).  When 
exploded to another directory other than /, however, the packaging of the 
dependencies would mess up.  Thus making both my suggestions void.  In this 
case, exploding everything in the uberjar's / in order to make the uberjar 
executable will work--only that the security files will prevent the uberjar to 
execute if signed jars were used.  Will removing the security files raise any 
license issues?

> jar-with-dependencies has a last-one-copies-wins policy which can fail signed 
> jars
> ----------------------------------------------------------------------------------
>
>          Key: MASSEMBLY-64
>          URL: http://jira.codehaus.org/browse/MASSEMBLY-64
>      Project: Maven 2.x Assembly Plugin
>         Type: Bug

>     Versions: 2.0.1
>     Reporter: Geoffrey De Smet
>      Fix For: 2.1

>
>
> I've configured the plugins like this:
>             <plugin>
>                 <groupId>org.apache.maven.plugins</groupId>
>                 <artifactId>maven-jar-plugin</artifactId>
>                 <configuration>
>                     <archive>
>                         <manifest>
>                             <mainClass>ggg.GGGStandaloneApp</mainClass>
>                             <addClasspath>true</addClasspath>
>                         </manifest>
>                     </archive>
>                 </configuration>
>             </plugin>
>             <plugin>
>                 <artifactId>maven-assembly-plugin</artifactId>
>                 <configuration>
>                     <descriptorId>jar-with-dependencies</descriptorId>
>                     <archive> <!-- Please document this -->
>                         <manifest>
>                             <mainClass>ggg.GGGStandaloneApp</mainClass>
>                         </manifest>
>                     </archive>
>                 </configuration>
>             </plugin>
> BTW: Please document the archive option in the assembly plugin on the 
> assembly site, it took me a while of trial and error to find it.
> However the application doesn't work yet, because:
> Exception in thread "main" java.lang.SecurityException: no manifiest section 
> for signature file entry javax/activation/D
> ataContentHandlerFactory.class
>         at sun.security.util.SignatureFileVerifier.verifySection(Unknown 
> Source)
>         at sun.security.util.SignatureFileVerifier.processImpl(Unknown Source)
>         at sun.security.util.SignatureFileVerifier.process(Unknown Source)
>         at java.util.jar.JarVerifier.processEntry(Unknown Source)
> ...
> It looks like it's because the everything in the META-INF directory have a 
> last-one-copied-wins policy.
> Jar-jar would also solve this of course.
> PS: I am also using acegisecurity, so I belive you can replicate this issue 
> by making an assembly of a HelloWorld dependend on acegi & activation.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira

Reply via email to