第6章 部署发布 - 6.1 项目打包
优质
小牛编辑
126浏览
2023-12-01
Blade本身没有特殊的打包服务,但是因为项目是Maven结构所以结合maven中的打包插件就可以完成了。
怎么做呢?
加入打包插件
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<appendAssemblyId>false</appendAssemblyId>
<descriptors>
<descriptor>package.xml</descriptor>
</descriptors>
<outputDirectory>${project.build.directory}/dist/</outputDirectory>
</configuration>
<executions>
<execution>
<id>make-assembly</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.4</version>
<configuration>
<archive>
<manifest>
<mainClass>com.bladejava.firstapp.Application</mainClass>
<classpathPrefix>lib/</classpathPrefix>
<addClasspath>true</addClasspath>
</manifest>
<manifestEntries>
<!-- 在Class-Path下添加配置文件的路径 -->
<Class-Path>resources/</Class-Path>
</manifestEntries>
</archive>
</configuration>
</plugin>
不用怕,我来解释一下上面两个插件。
Assembly
插件不仅支持创建二进制归档文件,也支持创建源码归档文件,能帮你构建一个完整的发布包。
目前Assembly插件支持如下格式的归档文件:
- zip
- tar.gz
- tar.bz2
- jar
- dir
- war
maven-jar-plugin
帮你生成一个可执行的jar,mainClass
指定启动的主类。
此时还缺少一个配置文件 package.xml
,在 pom.xml
同目录下创建一个 XML 文件
<assembly xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2 http://maven.apache.org/xsd/assembly-1.1.2.xsd">
<id>customAssembly</id>
<formats>
<format>dir</format>
</formats>
<includeBaseDirectory>false</includeBaseDirectory>
<fileSets>
<fileSet>
<directory>src/main/resources/</directory>
<outputDirectory>/resources</outputDirectory>
</fileSet>
</fileSets>
<dependencySets>
<dependencySet>
<outputDirectory>/lib</outputDirectory>
<scope>runtime</scope>
<excludes>
<exclude>${project.groupId}:${project.artifactId}</exclude>
</excludes>
</dependencySet>
<dependencySet>
<outputDirectory>/</outputDirectory>
<includes>
<include>${project.groupId}:${project.artifactId}</include>
</includes>
</dependencySet>
</dependencySets>
</assembly>
这里我将发布包打成一个目录了,将所有依赖都打在 lib
包下面。现在已经大功告成了,怎么使用呢?
mvn clean package
这样就可以打包了,和以前没有什么不同,打包完成后在 target/dist
目录中就是生成好的发布目录,
进入该目录执行:
java -jar xxxx.jar
即可启动。