`
城的灯
  • 浏览: 152245 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

maven使用assembly打独立可执行jar包启动时报错(关于spring错误的解决方法)

    博客分类:
  • 2011
阅读更多

错误如下:Configuration problem: Unable to locate Spring NamespaceHandler for XML schema namespace

原因assembly的一个bug.参见:http://jira.codehaus.org/browse/MASSEMBLY-360 原因是spring的多个jar包中都含有spring.handlers和spring.schemas文件,而assembly只会把第一次遇到的文件打入jar包,后面遇到的都会skip掉。

解决方法:使用shade插件来打包.在shade的打包配制中指明spring.handlers和spring.schemas文件会以append方式加入进来,从而确保其他spring的jar中的这两个文件的信息不会被遗漏。下面是一份配置的例子:

 

<plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-shade-plugin</artifactId>
                <version>1.4</version>
                <executions>
                    <execution>
                        <phase>package</phase>
                        <goals>
                            <goal>shade</goal>
                        </goals>
                        <configuration>
                            <transformers>
                                <transformer
                                        implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
                                    <resource>META-INF/spring.handlers</resource>
                                </transformer>
                                <transformer
                                        implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
                                    <mainClass>com.ddmap.hadoop.db.mongodb.CopyToLocal</mainClass>
                                </transformer>
                                <transformer
                                        implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
                                    <resource>META-INF/spring.schemas</resource>
                                </transformer>
                            </transformers>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
 

 

分享到:
评论
1 楼 wujie2008 2012-03-23  
总算解决问题了,assembly 搞死我了。谢谢兄弟啊。

相关推荐

    myeclipse用maven构建dubbo服务的可执行jar包

    还需要添加`maven-assembly-plugin`或`maven-jar-plugin`来打包可执行的JAR包,如下所示: ```xml &lt;groupId&gt;org.apache.maven.plugins &lt;artifactId&gt;maven-jar-plugin &lt;version&gt;3.2.0 ...

    Maven将带有第三方依赖的可执行程序打包示例

    maven-assembly-plugin 插件打第三方依赖包进 jar,spring 有 org.springframework.beans.factory.parsing.BeanDefinitionParsingException 异常怎么办? maven-shade-plugin 插件打第三方依赖包,spring 有 java....

    SpringBoot项目使用maven-assembly-plugin根据不同环境打包成tar.gz或者zip

    本篇将详细介绍如何利用`maven-assembly-plugin`在Spring Boot项目中实现这个功能。 首先,`maven-assembly-plugin`允许我们在构建过程中定义多个不同的组装配置(assembly),每个配置可以针对特定的环境。配置...

    springboot+maven打包demo【将依赖与配置文件打包到jar包外部】

    在本文中,我们将深入探讨如何使用Spring Boot和Maven来构建一个项目,使得依赖和配置文件被打包到jar包外部,以实现更加灵活的项目管理。这个方法对于那些需要根据不同环境进行定制配置或者频繁更新配置的应用来说...

    maven打包dubbo服务接口(maven-assembly-plugin)

    本篇文章将详细探讨如何使用Maven的`maven-assembly-plugin`插件来打包Dubbo服务接口。 首先,我们要理解Maven的生命周期和构建过程。Maven有多个生命周期阶段,如`clean`、`compile`、`test`、`package`等,每个...

    assembly项目打包插件,包含windows与linux环境下的启动脚本

    在Spring Boot项目中,由于其内置的Tomcat服务器和“可执行”JAR特性,通常只需要一个JAR文件就能运行整个应用。然而,为了实现更高级的功能,如日志管理、配置文件分离和环境特定的启动脚本,assembly插件可以提供...

    maven项目使用assembly打包jar时处理Unable to locate Spring NamespaceHandler问题

    使用assembly插件打包jar后启动时,总是出现...错误,网上找了各种方法都没有用,在尝试了100+失败后,解决了这个问题,在打包的jar中,META-INF目录下,使用下载的压缩包内容替换并重新压缩成jar,就可以正式启动了。

    ​实现maven项目中多版本依赖兼容使用解决方案

    依赖冲突通常发生在两个或更多库使用相同类的不同版本时,Maven默认会选择最高版本的依赖,但这可能导致运行时错误或不兼容性。在本案例中,公司需要使用一个第三方接口的加密jar包,该jar包内部依赖的高版本与现有...

    springboot 多项目打包 jar包教程,包含源代码

    Spring Boot的可执行jar文件是一个自包含的应用,包含所有依赖库,可以直接运行。 1. **创建模块化项目结构** 在多项目打包中,我们需要将各个独立的Spring Boot项目作为模块进行组织。这些模块可以是Maven或...

    SpringBoot使用Maven打包异常-引入外部jar的问题及解决方案

    本文提供了SpringBoot使用Maven打包异常-引入外部jar的问题及解决方案,包括引入外部jar包、配置pom.xml文件和排除冲突的jar包等解决方案。这些解决方案可以帮助开发者解决SpringBoot使用Maven打包异常时引入外部jar...

    将多个jar包合并为一个jar包

    提供的压缩包文件“合并jar包”可能包含了上述方法的使用说明或工具,具体操作步骤应参照其内部文档执行。合并JAR的过程虽然看似简单,但处理好各种细节是关键,以确保最终的合并JAR在实际应用中能够顺利工作。对于...

    maven-shade-plugin-3.1.0.jar

    maven打包,指定入口类的jar包,具体的pom配置为: &lt;groupId&gt;org.apache.maven.plugins &lt;artifactId&gt;maven-shade-plugin &lt;version&gt;3.1.0 &lt;phase&gt;package &lt;goal&gt;shade implementation="org....

    maven插件assembly使用及springboot启动脚本start.sh和停止脚本 stop.sh

    本文主要关注的是Maven的assembly插件以及Spring Boot项目的启动和停止脚本。 **Maven Assembly 插件** Maven Assembly 插件用于创建自定义的归档文件,如JAR、WAR或ZIP,包含项目的所有依赖、资源和配置文件。这...

    xmljava系统源码-spring-boot-assembly:SpringBoot项目使用maven-assembly-plugin根据不

    boot项目中的启动jar包移动到boot目录中 将spring boot项目中的第三方依赖jar包移动到外部lib目录中 bin目录中是启动,停止,重启服务命令 打包后的目录结构类似于tomcat/maven目录结构 代码托管 | 主要插件 maven-...

    jar包全网最全.zip

    Java的JAR(Java Archive)文件是Java平台特有的打包格式,用于集合多个类文件、相关的元数据和资源文件,形成一个单一的可执行文件。这种格式对于分发、部署Java应用程序和库尤其方便。"jar包全网最全.zip"这个...

    MAVEN构建的工程无法发布lib到tomcat的解决方

    在使用Maven构建项目时,可能会遇到发布到Tomcat服务器的困难,Error configuring application listener of class org.springframework.web.context.ContextLoaderListener错误,无法加载相应的 jar 文件,导致项目...

    Maven打包指南

    通过上述的介绍和示例,我们了解了在使用 Maven 打包项目时可能会遇到的一些常见问题,包括资源文件缺失、依赖包未打包以及 Spring 命名空间处理不当等问题,并提供了具体的解决方法。这些技巧不仅有助于提高打包的...

    java 导出 jar 文件 执行批处理

    7. **可执行JAR**:通过特定的配置,如使用Maven的`one-jar`或`spring-boot-maven-plugin`,可以创建一个可以直接运行的JAR,它会自动包含运行所需的类和依赖。 综上所述,这篇博客可能涵盖了如何创建、配置、执行...

    Spring boot打包jar分离lib和resources方法实例

    Spring Boot 打包 jar 分离 lib 和 resources 方法实例 在 Spring Boot 项目中,打包 jar 文件是一个非常重要的步骤。传统的 jar 包中,所有文件都打包到一个 jar 包中,这样会使得 jar 文件非常臃肿,在进行服务...

Global site tag (gtag.js) - Google Analytics