Java技术--maven的assembly插件打包(依赖包归档)

注:最近工作中遇到的一个问题,写了一个日志处理的模块,现在需要给第三方客户使用,但是该模块依赖了我们自己写的或者修改的一些jar包,可选择方案:1、所有jar包放在一个文件夹中给第三方(感觉好不专业);2、将日志处理模块和依赖包全部打成一个jar包,明显这种方法专业且方便。因此引入maven的assembly插件来完成这个工作。

前提是:你的项目也是用maven来管理的。

1、在pom.xml文件中增加assembly插件:

<!-- for package -->
        <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-assembly-plugin</artifactId>
                <version>2.4</version>
                <configuration>
                    <descriptors>
                        <descriptor>src/main/assembly/src.xml</descriptor>
                    </descriptors>
                </configuration>
        </plugin>

2、在源代码main/assembly下创建一个src.xml文件,内容为:

<assembly
    xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0 http://maven.apache.org/xsd/assembly-1.1.0.xsd">
    <id>jar-with-dependencies</id>
    <formats>
        <format>jar</format>
    </formats>
    <includeBaseDirectory>false</includeBaseDirectory>
    <dependencySets>
        <dependencySet>
            <useProjectArtifact>true</useProjectArtifact>
            <outputDirectory>/lib</outputDirectory>
            <unpack>false</unpack>
            <scope>runtime</scope>
        </dependencySet>
    </dependencySets>
    <fileSets>
        <fileSet>
            <directory>${project.build.outputDirectory}</directory>
            <outputDirectory>/</outputDirectory>
        </fileSet>
    </fileSets>
</assembly>

3、执行mvn assembly:assembly命令,则在target文件夹中会看见新创建的{artifactId}-jar-with-dependencies.jar这个jar包,如下图:

4、查看这个jar包,可以看到有个lib文件夹,里面都是第三方依赖,此时的jar包由于包含第三方依赖,会比较大,上面的实际jar包有80M,如图:

注:执行命令过程中,可能会出现test和javadoc方面的错误,可以使用下面的命令跳过test和Javadoc:

mvn assembly:assembly -Dmaven.test.skip=true -Dmaven.javadoc.skip=true
时间: 2024-10-11 04:30:02

Java技术--maven的assembly插件打包(依赖包归档)的相关文章

maven使用assembly插件打zip包

一,pom引入插件 <build> <plugins> <!-- 使用assembly插件打成zip --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-assembly-plugin</artifactId> <version>2.2-beta-5</version> <config

使用Maven的assembly插件实现自定义打包

一.背景 最近我们项目越来越多了,然后我就在想如何才能把基础服务的打包方式统一起来,并且可以实现按照我们的要求来生成,通过研究,我们通过使用maven的assembly插件完美的实现了该需求,爽爆了有木有.本文分享该插件的配置以及微服务的统一打包方式. 二.配置步骤及其他事项 1.首先我们需要在pom.xml中配置maven的assembly插件 1 <build> 2 <plugins> 3 <plugin> 4 <groupId>org.apache.m

Maven 的assembly插件使用

Maven 的assembly插件使用: 最近在做一个小工程,利用java启动运行. 为了简单方便使用运行,利用maven的assembly将需要使用的jar都打包到一个jar中.这样无论拷贝到哪里,只有运行就可以,不用需要任何配置. 配置时指定mainClass,运行java的main函数时则可以不用指定包含main函数的类路径名.如运行下面的jar文件则非常简单方便(后台运行):nohup java -jar CalculateScore.jar & 第一步:需要在pom的xml中配置如下内

Intell 使用 assembly插件 打包可执行Iar包

1.在pom.xml文件中增加assembly插件 <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-assembly-plugin</artifactId> <version>2.4</version> <configuration> <executions> <execution> <i

Java 将Maven项目打成可执行jar包

一.用maven-shade-plugin打包 在pom.xml文件中加入如下信息,利用Maven的maven-shade-plugin插件进行打包. <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-shade-plugin</artifactId> <version>1.4<

springboot打包依赖包和配置文件分离

前言:springboot项目打包使用spring-boot-maven-plugin插件,默认会将依赖包和配置文件统统打进可执行jar文件中,使得jar文件太臃肿,则正式环境修改配置文件较麻烦,因此需要将配置文件和依赖jar包分离.如下: 1.打包时将依赖jar排除,并将依赖包拷贝到指定目录(target/lib) <build> <!--指定打成的jar包名称--> <finalName>bill</finalName> <plugins>

java基础类型包装类与自动打包解包

一基础类型包装类 基础数据类型存放在内存的栈区域,可以通过包装类将基础数据类型转换为引用数据类型,即存储在堆与栈中. 基础数据类型一共有8种,相对应的包装类也有8种.分别是Byte,Short,Integer,Long,Float,Double,Character,Boolean.类 包装类位于java.Lang包中. 1 public class Test1 { 2 3 public static void main(String[] args) { 4 // TODO Auto-genera

maven通过pom文件下载相关依赖包的网址

下载有关依赖插件的网址去MVNREPOSITORY仓库寻找对应的版本然后添加到pom文件中就可以自动下载了 网址为:https://mvnrepository.com 原文地址:https://www.cnblogs.com/manmanchanglu/p/11774442.html

idea maven 项目可以运行但依赖包一直是红色

一句话!!!重启一下idea 红红的一片很烦!!!!!重启 原文地址:https://www.cnblogs.com/july7/p/11632746.html