• maven将依赖第三方包打包(package)到jar中


    前提:项目是一个纯maven的java工程,通过idea中file-->new-->project-->maven来创建的,不是spring boot工程(不是通过file-->new-->project-->,spring boot工程通过默认的)就可以,不需要额外操作。

    1.遇到一个问题,项目打包,结果jar中没有第三方包

    目录结构

    pom.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <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</groupId>
        <artifactId>EnctyptParamTool</artifactId>
        <version>1.0-SNAPSHOT</version>
        <properties>
            <java.version>1.8</java.version>
            <spring-cloud.version>Greenwich.SR1</spring-cloud.version>
            <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
            <fastjson.version>1.2.32</fastjson.version>
        </properties>
        <dependencies>
    <!--本地添加模式-->
    <!-- <dependency> <groupId>com</groupId> <artifactId>hutool-all</artifactId> <scope>system</scope> <version>4.5.9</version> <systemPath>${project.basedir}/lib/hutool-all-4.5.9.jar</systemPath> --> <!--辅助工具类 maven仓库引入方式--> <dependency> <groupId>cn.hutool</groupId> <artifactId>hutool-all</artifactId> <version>4.5.9</version> </dependency> </dependencies> </project>

    maven: clean-->compile-->package

    没有hutool.jar

    2.解决

    猜测是pom.xml中少了打包的要素

    增加build插件

    <?xml version="1.0" encoding="UTF-8"?>
    <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</groupId>
        <artifactId>EnctyptParamTool</artifactId>
        <version>1.0-SNAPSHOT</version>
        <properties>
            <java.version>1.8</java.version>
            <spring-cloud.version>Greenwich.SR1</spring-cloud.version>
            <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
            <fastjson.version>1.2.32</fastjson.version>
        </properties>
        <dependencies>
            
            <!--辅助工具类-->
            <dependency>
                <groupId>cn.hutool</groupId>
                <artifactId>hutool-all</artifactId>
                <version>4.5.9</version>
            </dependency>
    
        </dependencies>
    
        <build>
            <plugins>
                <plugin>
                    <artifactId>maven-assembly-plugin</artifactId>
                    <configuration>
                        <!--这部分可有可无,加上的话则直接生成可运行jar包-->
                        <!--<archive>-->
                        <!--<manifest>-->
                        <!--<mainClass>${exec.mainClass}</mainClass>-->
                        <!--</manifest>-->
                        <!--</archive>-->
                        <descriptorRefs>
                            <descriptorRef>jar-with-dependencies</descriptorRef>
                        </descriptorRefs>
                    </configuration>
                </plugin>
            </plugins>
        </build>
    </project>

    在maven中执行

    结果(依赖的包已经打进去了,但变成class):

     3.打入jar包

    修改插件配置

    C:UsersLenovo.m2 epositoryorgapachemavenpluginsmaven-assembly-plugin2.2-beta-5

     用winzip打开,并把jar-with-dependencies.xml文件拖(按住鼠标左键)出来,修改改unpack为false

    把修改后的文件再拖入压缩包

    重新打包

    结果:

  • 相关阅读:
    51nod 1138 【数学-等差数列】
    hdoj3665【简单DFS】
    hdoj3664【DP】
    51nod1270 【dp】
    51nod 1069【思维】
    关于一些数学符号和概率的阐述;
    51nod 1428【贪心】
    51nod 1133【贪心】
    51nod1127【尺取】
    51nod1126【矩阵快速幂】
  • 原文地址:https://www.cnblogs.com/pu20065226/p/11052934.html
Copyright © 2020-2023  润新知