Maven中利⽤assembly插件打包jar包
在maven中有⼏种⽅法打包项⽬,在之前的⼀篇博客中,已经介绍了怎么在没有maven插件的情况下,怎么打包项⽬,并执⾏的。
⽽本篇则是在上⼀篇⽂章之后,总结⼀下怎么使⽤maven插件进⾏打包项⽬。
maven中有多种插件提供了打包功能,分别是maven-jar-plugin(⽤来打包成jar包),maven-war-plugin(打包成war包)、maven-assembly-plugin。
这⾥只介绍怎么使⽤assembly插件打包项⽬成jar包。
主要有以下⼏个步骤(前提是IDE中已经有maven插件了)
1,配置l⽂件
2,执⾏maven命令中的assembly:assembly命令进⾏打包
3,将对应的资源⽂件复制出来放到同⽣成的jar包⽂件同⽬录下,以便运⾏jar包时候可以到相应的资源。
4,利⽤java -jar命令运⾏jar包
1,在项⽬的l⽂件中添加⼀个标签
<plugin></plugin>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<archive>
<manifest>
<mainClass>com.hey.main.Main</mainClass>
</manifest>
</archive>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
</plugin>
如下是⼀个完整的l⽂档:
<project xmlns="/POM/4.0.0" xmlns:xsi="/2001/XMLSchema-instance"
xsi:schemaLocation="/POM/4.0.0 /xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>ShareBike</groupId>
<artifactId>ShareBike</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<build>
<sourceDirectory>src</sourceDirectory>
<resources>
<resource>
<directory>src</directory>
<excludes>
<exclude>**/*.java</exclude>
</excludes>
</resource>
</resources>
<plugins>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<archive>
<manifest>
<mainClass>main.PushTrailVerticle</mainClass>
</manifest>
</archive>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
</plugin>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.5.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>io.vertx</groupId>
<artifactId>vertx-core</artifactId>
<version>3.4.2</version>
</dependency>
<dependency>
<groupId>io.vertx</groupId>
<artifactId>vertx-web</artifactId>
<version>3.4.2</version>
</dependency>
<dependency>
<groupId>c3p0</groupId>
<artifactId>c3p0</artifactId>
<version>0.9.1.2</version>
</dependency>
<dependency>
<groupId>ojdbc</groupId>
<artifactId>ojdbc</artifactId>
<version>oracle12c</version>
</dependency>
<dependency>
<groupId>io.vertx</groupId>
<artifactId>vertx-web-client</artifactId>
<version>3.4.2</version>
</dependency>
<!-- mvnrepository/artifact/com.vividsolutions/jts -->
<dependency>
<groupId>com.vividsolutions</groupId>
<artifactId>jts</artifactId>
<version>1.14</version>
</dependency>
<dependency>
<groupId&le.protobuf</groupId>
<artifactId>protobuf-java</artifactId>
<version>3.3.0</version>
</dependency>
</dependencies>
</project>
上⾯的mainClass标签中的内容替换成⾃⼰的main函数所在的类,前⾯要包含package名字,也就是package_name.MainClassName。
2,执⾏打包命令
2.1 右击选中项⽬的properties–>run as–>maven build….
2.2执⾏assembly:assembly命令
在Main窗⼝下的Goals⾥填写assembly:assembly,然后点击run就可以了。
2.3 run之后就会在项⽬的target⽬录下⽣成⼀个
项⽬名-版本号-with-dependencies的⼀个jar包,这个是个fat jar包,⾥⾯包含了项⽬⾥⽤到的依赖项。
当然也会⽣成另外⼀个没有包含依赖项的jar包。
3 部署项⽬
因为项⽬中还⽤到了很多资源⽂件,⼀些txt,properties⽂件等等,因此在部署的时候,还需要将这些⽂件存放在和jar包同路径下(否则就会出现运⾏时资源不到的异常)。这⼀点和⾥⼀样,可以参照这⼀篇⽂章。
当然也可以编辑l⽂件中的内容,打包时把资源⽂件⼀起打包进去,但是我们⼀些配置⽂件⼀
般都是可能需要⾃⼰可以⼿动编辑的,如果打包到jar包中,就⽆法编辑了。
4 运⾏jar包
编写⼀个bat命令⽂件,⾥⾯的内容就是java -jar jar_name。
maven打包本地jar包该命令⽂件也放在和jar同⽬录下,点击即可运⾏程序。
到此这篇关于Maven中利⽤assembly插件打包jar包的⽂章就介绍到这了。希望对⼤家的学习有所帮助,也希望⼤家多多⽀持。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。