欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

解決Spring導出可以運行的jar包問題

 更新時間:2023年03月01日 11:04:20   作者:李秋  
最近需要解決Maven項目導入可執(zhí)行的jar包的問題,如果項目不包含Spring,那么使用mvn assembly:assembly即可,這篇文章主要介紹了Spring導出可以運行的jar包,需要的朋友可以參考下

最近需要解決Maven項目導入可執(zhí)行的jar包的問題,如果項目不包含Spring,那么使用mvn assembly:assembly即可,詳情可以參考:

http://www.dbjr.com.cn/article/276771.htm

可是如果包含Spring,那么這么方法就不可行,報錯:

Configuration problem: Unable to locate Spring NamespaceHandler for XML schema namespace

我在網上折騰了兩天,這是assembly的一個bug。參見:http://jira.codehaus.org/browse/MASSEMBLY-360

據(jù)說原因是spring的多個jar包中都含有spring.handlers和spring.schemas文件,而assembly只會把第一次遇到的文件打入jar包,后面遇到的都會skip掉。

解決方法就是放棄assembly,使用shade插件來打包.在shade的打包配制中指明spring.handlers和spring.schemas文件會以append方式加入進來,從而確保其他spring的jar中的這兩個文件的信息不會被遺漏。

下面是一個非常簡單的例子,只有四個文件的Maven工程,代碼再附件內:

1、pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.javaee</groupId>
    <artifactId>main-spring</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <dependencies>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>3.0.6.RELEASE</version>
        </dependency>
    </dependencies>
    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-shade-plugin</artifactId>
                <version>1.7</version>

                <executions>
                    <execution>
                        <phase>package</phase>
                        <goals>
                            <goal>shade</goal>
                        </goals>
                        <configuration>
                            <finalName>my-spring-app</finalName>
                            <shadedArtifactAttached>true</shadedArtifactAttached>
                            <shadedClassifierName>jar-with-dependencies</shadedClassifierName>
                            <transformers>
                                <transformer
                                    implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
                                    <mainClass>com.test.Main</mainClass>
                                </transformer>
                                <transformer
                                    implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
                                    <resource>META-INF/spring.handlers</resource>
                                </transformer>
                                <transformer
                                    implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
                                    <resource>META-INF/spring.schemas</resource>
                                </transformer>
                                <transformer
                                    implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
                                    <resource>META-INF/spring.tooling</resource>
                                </transformer>
                            </transformers>

                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
</project>

2、applicationContext.xml(Spring的配置文件)

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:mvc="http://www.springframework.org/schema/mvc"
    xmlns:aop="http://www.springframework.org/schema/aop" xmlns:context="http://www.springframework.org/schema/context"
    xsi:schemaLocation="
        http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
        http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd
        http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd
        http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
        ">
    <context:annotation-config />
    <context:component-scan base-package="com.*" />
</beans>

3、代碼事例

package com.service;

import org.springframework.stereotype.Service;

@Service
public class UserService {
    public String findUser() {
        return "find liqiu";
    }
}
package com.exec;

import org.springframework.context.support.GenericXmlApplicationContext;

import com.service.UserService;

public class Main {

    public static void main(String[] args) throws InterruptedException {
        GenericXmlApplicationContext context = new GenericXmlApplicationContext();
        context.setValidating(false);
        context.load("classpath:applicationContext.xml");
        context.refresh();
        UserService userService = context.getBean(UserService.class);
        while (true) {
            System.out.println(userService.findUser());
            Thread.sleep(10000);
        }
    }
}

在命令行運行:mvn package

然后在target目錄會產出一個jar包:my-spring-app.jar

運行即可:java -jar target/my-spring-app.jar

五月 16, 2015 10:46:52 下午 org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions
INFO: Loading XML bean definitions from class path resource [applicationContext.xml]
五月 16, 2015 10:46:53 下午 org.springframework.context.support.AbstractApplicationContext prepareRefresh
INFO: Refreshing org.springframework.context.support.GenericXmlApplicationContext@4a5e88f7: startup date [Sat May 16 22:46:53 CST 2015]; root of context hierarchy
五月 16, 2015 10:46:53 下午 org.springframework.beans.factory.support.DefaultListableBeanFactory preInstantiateSingletons
INFO: Pre-instantiating singletons in org.springframework.beans.factory.support.DefaultListableBeanFactory@18fd54ec: defining beans [org.springframework.context.annotation.internalConfigurationAnnotationProcessor,org.springframework.context.annotation.internalAutowiredAnnotationProcessor,org.springframework.context.annotation.internalRequiredAnnotationProcessor,org.springframework.context.annotation.internalCommonAnnotationProcessor,userService]; root of factory hierarchy
find liqiu
find liqiu

當然也可以這么運行:java -classpath target/my-spring-app.jar com.exec.Main

源代碼下載地址:http://xiazai.jb51.net/202303/yuanma/main_spring_jb51.rar

到此這篇關于Spring導出可以運行的jar包的文章就介紹到這了,更多相關Spring導出jar包內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Springboot整合Netty實現(xiàn)RPC服務器的示例代碼

    Springboot整合Netty實現(xiàn)RPC服務器的示例代碼

    這篇文章主要介紹了Springboot整合Netty實現(xiàn)RPC服務器的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-01-01
  • 深入理解hibernate的三種狀態(tài)

    深入理解hibernate的三種狀態(tài)

    本篇文章主要介紹了深入理解hibernate的三種狀態(tài) ,主要包括了transient(瞬時狀態(tài)),persistent(持久化狀態(tài))以及detached(離線狀態(tài)),有興趣的同學可以了解一下
    2017-05-05
  • 一文搞懂Java中的日期類

    一文搞懂Java中的日期類

    在程序的開發(fā)中我們經常會遇到日期類型的操作,Java對日期類型的操作提供了很好的支持。本文將通過示例來聊聊Java中日期類的使用,需要的可以參考一下
    2022-09-09
  • java 多態(tài)性詳解及常見面試題

    java 多態(tài)性詳解及常見面試題

    這篇文章主要介紹了java 多態(tài)性詳解及常見面試題的相關資料,這里對java 的多態(tài)性做了資料整理,并列舉常見的關于多態(tài)性的面試題,需要的朋友可以參考下
    2016-11-11
  • Java數(shù)據(jù)結構之LinkedList從鏈表到實現(xiàn)

    Java數(shù)據(jù)結構之LinkedList從鏈表到實現(xiàn)

    LinkedList是Java中常用的數(shù)據(jù)結構之一,實現(xiàn)了鏈表的特性,支持快速添加、刪除元素,可以用于實現(xiàn)隊列、棧、雙向隊列等數(shù)據(jù)結構。LinkedList的內部實現(xiàn)采用了雙向鏈表,其中每個節(jié)點都包含前驅節(jié)點和后繼節(jié)點的引用,可以直接訪問鏈表的頭尾元素
    2023-04-04
  • itextpdf提取PDF文件中的任意頁碼實現(xiàn)示例

    itextpdf提取PDF文件中的任意頁碼實現(xiàn)示例

    這篇文章主要為大家介紹了itextpdf提取PDF文件中的任意頁碼實現(xiàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-08-08
  • java如何遠程加載class文件

    java如何遠程加載class文件

    這篇文章主要介紹了java如何遠程加載class文件問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-01-01
  • Java中的super關鍵字_動力節(jié)點Java學院整理

    Java中的super關鍵字_動力節(jié)點Java學院整理

    這篇文章主要介紹了Java中的super關鍵字的相關知識,需要的朋友參考下
    2017-04-04
  • 解決IDEA克隆代碼后在右下角沒有git分支的問題

    解決IDEA克隆代碼后在右下角沒有git分支的問題

    這篇文章主要介紹了解決IDEA克隆代碼后在右下角沒有git分支的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-02-02
  • java實現(xiàn)拼圖小游戲

    java實現(xiàn)拼圖小游戲

    這篇文章主要為大家詳細介紹了java實現(xiàn)拼圖小游戲,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-02-02

最新評論