Maven Assembly Plugin - 将依赖包,模块,文件集和单独的文件打包输出

Maven项目中一般只会将项目的源代码编译分发,而依赖包等都不会被包括在这个范围内,即项目的最终输出不会包含依赖包、模块等项目运行时所必须的包和文件。如果想在分发的包中包含这些依赖包和模块,需要使用maven assembly plugin。

Maven Assembly Plugin的使用很简单,只需在pom.xml中添加如下配置

  <build>

  <finalName>rest</finalName>

  <plugins>

  <plugin>

  <artifactId>maven-compiler-plugin</artifactId>

  <version>3.6.1</version>

  <configuration>

  <source>1.8</source>

  <target>1.8</target>

  </configuration>

  </plugin>

  <plugin>

  <artifactId>maven-assembly-plugin</artifactId>

  <version>3.0.0</version>

  <configuration>

  <descriptorRefs>

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

  </descriptorRefs>

  </configuration>

  <executions>

  <execution>

  <id>make-assembly</id>

  <phase>package</phase>

  <goals>

  <goal>single</goal>

  </goals>

  </execution>

  </executions>

  </plugin>

  <plugin>

  <artifactId>maven-jar-plugin</artifactId>

  <version>3.0.2</version>

  </plugin>

  </plugins>

  </build>

然后,执行如下命令创建一个项目

RossideMacBook-Pro:rest rossi$ mvn package

当构建成功后,在target目录下会生成两个jar包,一个以with-dependencies结尾的jar就是打包了依赖包的。

构建过程中如果有报NoClassDefFoundError,注意看下是哪个jar的,可能的原因是maven在下载jar的时候有问题,将该jar所在目录下所有的文件删除,再运行mvn package,让maven重新下载即可。






  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Maven-assembly-plugin是一个用于打包的插件,可以将项目中的多个模块合并成一个可执行的JAR或者WAR。然而,有时候我们可能需要对已经打包好的JAR或者WAR进行进一步的处理或者外部打包。以下是关于maven-assembly-plugin外部打包的解答。 首先,我们需要确保已经正确配置了maven-assembly-plugin,并且在项目的pom.xml文件中已经定义好了自定义的assembly描述文件assembly.xml)。 在进行外部打包之前,我们需要先将项目进行构建和打包。在项目根目录下通过命令行输入"mvn clean install"命令来构建项目,并且将项目打包成JAR或者WAR文件。 接下来,在项目根目录下创建一个新的文件夹(例如,external_package),用于存放外部打包文件。 然后,可以通过以下命令来进行外部打包: mvn assembly:assembly -Ddescriptor=assembly.xml -DoutputDirectory=/path/to/external_package 在上面的命令中,-Ddescriptor参数用于指定assembly描述文件所在的路径以及文件名称,-DoutputDirectory参数用于指定外部打包文件存放的路径。 执行完上述命令后,maven-assembly-plugin会根据assembly.xml文件的定义,在指定的路径下生成外部打包文件。 通过以上步骤,我们就可以实现maven-assembly-plugin的外部打包功能。需要注意的是,我们在进行外部打包之前,需要先正确配置和打包项目,并且确保已经定义了正确的assembly描述文件。 外部打包可以用于将项目的可执行文件(如JAR或者WAR文件)与其它资源(如配置文件或者依赖库)合并打包成一个单独的压缩文件,方便部署和分发。它可以帮助我们将项目打包成一个易于使用和发布的形式,简化部署流程,提高开发效率。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值