maven-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Chris Wilkes (JIRA)" <j...@codehaus.org>
Subject [jira] Commented: (MASSEMBLY-360) When using mulitple Spring dependencies, the files from META-INF (from the Spring jars) overwrite each other in an executable jar-with-dependencies.
Date Mon, 11 May 2009 21:19:44 GMT

    [ http://jira.codehaus.org/browse/MASSEMBLY-360?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=176002#action_176002
] 

Chris Wilkes commented on MASSEMBLY-360:
----------------------------------------

While this doesn't fix the underlying problem it does get you started:

Make a src/main/resources/META-INF/ directory
explode the spring.jar (the large one) and put the spring.handlers and spring.schemas files
from there into the above directory

Now when your executable jar is built those two files will be the last ones copied over so
they "win" and are included in the jar file.

A better fix would be to make a plugin that gets those two files from all the spring-xxx.jars
and concats them together.

> When using mulitple Spring dependencies, the files from META-INF (from the Spring jars)
overwrite each other in an executable jar-with-dependencies.
> ----------------------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: MASSEMBLY-360
>                 URL: http://jira.codehaus.org/browse/MASSEMBLY-360
>             Project: Maven 2.x Assembly Plugin
>          Issue Type: Bug
>    Affects Versions: 2.2-beta-2
>         Environment: Windows XP, Java 5
>            Reporter: Marielle Enderman
>
> I'm working on a Java 5 project with maven 2 and I need to deliver an executable jar
file. In this project I'm using different Spring dependencies:
> <dependency>
>    <groupId>org.springframework</groupId>
>     <artifactId>spring-beans</artifactId>
>     <version>2.5.5</version>
> </dependency>
> <dependency>
>     <groupId>org.springframework</groupId>
>     <artifactId>spring-context</artifactId>
>     <version>2.5.5</version>
> </dependency>
> For maven packaging I'm using the maven-assembly plugin to create an executable jar with
dependencies (using the jar-with-dependencies descriptor). Everything works fine, except that
Spring's XSD files can't be found. At least: not all of them. The fact is: Every Spring JAR
file contains a META-INF directory with files like spring.handlers and spring.schemas which
contain list of locations of respectively namespace handlers and schemas. Unfortunately these
files aren't merged during packaging so the META_INF of the executable JAR file only contains
the last one added. 
> This can result in errors like this:
> Example 1: The spring-context-2.5.xsd can't be found: 
> WARN org.springframework.beans.factory.xml.XmlBeanDefinitionReader - Ignored XML validation
warning org.xml.sax.SAXParseException: schema_reference.4: Failed to read schema document
'http://www.springframework.org/schema/context/spring-context-2.5.xsd', because 1) could not
find the document; 2) the document could not be read; 3) the root element of the document
is not <xsd:schema>.
> Example 2: The NamespaceHandler for the spring context namespace can't be located:
> Exception in thread "main" org.springframework.beans.factory.parsing.BeanDefinitionParsingException:
Configuration problem: Unable to locate Spring NamespaceHandler for XML schema namespace [http://www.springframework.org/schema/context]
> When I manually merge the files, the executable JAR file works fine. 
> I hope this problem can be solved. 

-- 
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

        

Mime
View raw message