• Maven将引用项/依赖包打包到jar文件中


    mvn package命令只能用于没有引用项/依赖包的打包。

    解决方法:

    如果要把引用项/依赖包打包到运行jar文件中,有2个可选插件:

    maven-assembly-plugin
    maven-shade-plugin

    下面使用的是maven-assembly-plugin插件。

    在pom.xml中加入以下内容:

    <build>
        <plugins>
            <plugin>
                <artifactId>maven-assembly-plugin</artifactId>
                <configuration>
                    <descriptorRefs>
                        <descriptorRef>jar-with-dependencies</descriptorRef>
                    </descriptorRefs>
                    <archive>
                        <manifest>
                            <mainClass>这里填写主类名,例如com.clotho.util.Calculate</mainClass>
                        </manifest>
                    </archive>
                </configuration>
            </plugin>
        </plugins>
    </build>

    保存后,刷新Maven。

    在命令行中输入:

    mvn assembly:assembly

    程序会自动把引用包也一起打包到jar文件中

    附录:

    1.提示“找不到plugins”错误的处理

    如果使用的是IDEA,提示“Maven plugins can not be found”,可按以下步骤解决:

    File -> Setting -> Build, Execution, Deployment -> Build Tools -> Maven -> 勾选Use plugin registry选项

    然后,

    File -> Invalidate Caches -> Invalidate and Restart(重启IDEA)

    2.指定jar文件名

    在build标签中增加<finalName>指定的jar文件名</finalName>

    例如,要把jar文件名改成MyJarName:

    <build>
        <finalName>MyJarName</finalName>
    </build>

    3.去掉包含依赖包的jar文件名的名字后缀

    maven-assembly-plugin会生成2个jar包,一个是原名(没包含依赖包),一个是带后缀名(包含了依赖包)

    后缀名是在descriptorRef标签中配置,例如上面方法配置的是jar-with-dependencies:

    <descriptorRef>jar-with-dependencies</descriptorRef>

    如果注释掉这行,或去掉里面的jar-with-dependencies,编译时会报错。

    解决方法是在configuration表中中加入一行<appendAssemblyId>false</appendAssemblyId>,例如:

    <configuration>
        <descriptorRefs>
            <descriptorRef>jar-with-dependencies</descriptorRef>
        </descriptorRefs>
        <appendAssemblyId>false</appendAssemblyId>
    </configuration>
  • 相关阅读:
    中间件(1)分布式缓存
    大型网站架构演进(9)服务化
    大型网站架构演进(8)业务拆分
    大型网站架构演进(7)数据库拆分
    大型网站架构演进(6)使用NoSQL和搜索引擎
    大型网站架构演进(5)数据库读写分离
    大型网站架构演进(4)使用应用服务器集群
    大型网站架构演进(3)使用缓存改善网站性能
    大型网站架构演进(2)数据库与应用服务器分离
    大型网站架构演进(1)单机网站
  • 原文地址:https://www.cnblogs.com/live41/p/15579680.html
Copyright © 2020-2023  润新知