Spring Boot 初级入门教程(十一) —— 打分离 jar 包、部署和测试(附源码)

版权声明:本文为博主原创文章,转载请注明文章链接。 https://blog.csdn.net/tzhuwb/article/details/81224707

分离 jar 包,也就是把工程源码打包到 *.jar,而把工程依赖的所有 lib 单独生成,这样打包的好处是,在依赖包没有修改的情况下,部署时只需要上传一次依赖包,每次部署的项目 jar 包很小,在服务器网络不太好的情况下,这样做是非常有必要的,因为上传 20M 和 上传 20K 的时间还是有很大差别的。

在修改配置前,有几个小配置需要提前修改一下,这是前面的遗留问题。

一、修改配置,添加 jdk 版本指定。

在前面测试的过程中,大家有没有发现,加入自己配置的 jdk 环境是 jdk8,当【选中项目-》右键 -》Maven -》Update Project】时,项目的 jdk 配置会默认变为 jdk7,有时候还导致项目本身报错,不得不手动再修改为 8。所以要修改的第一个配置是如下:

<build>
		<plugins>
			<!-- 配置编译的JDK版本及编码 -->
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-compiler-plugin</artifactId>
				<configuration>
					<source>1.8</source>
					<target>1.8</target>
					<encoding>UTF8</encoding>
				</configuration>
			</plugin>

			<!-- 这是Spring Boot Devtools Plugin的配置 -->
			<!-- 。。。这里省略其它配置。。。 -->
		</plugins>
</build>

在原来配置的基础上添加 jdk 编译环境版本的配置,以后 update 项目,就不会回到 7 了。

二、分离 jar 包配置。

好,言归正传,如何修改配置才能打包分离的 jar 包呢?配置如下:

	<build>
		<plugins>
			<!-- 配置编译的JDK版本及编码 -->
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-compiler-plugin</artifactId>
				<configuration>
					<source>1.8</source>
					<target>1.8</target>
					<encoding>UTF8</encoding>
				</configuration>
			</plugin>

			<!-- 这是Spring Boot Devtools Plugin的配置 -->
			<!-- <plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
				<version>1.4.0.RELEASE</version>
				<configuration>
					如果没有fork配置,可能devtools不会起作用,即不会restart
					<fork>true</fork>
					<mainClass>com.menglanglang.test.springboot.App</mainClass>
				</configuration>
				<executions>
					<execution>
						<goals>
							<goal>repackage</goal>
						</goals>
					</execution>
				</executions>
			</plugin> -->

			<!-- 将所依赖的三方jar包打入target下的lib目录下 -->
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-dependency-plugin</artifactId>
				<executions>
					<execution>
						<id>copy-dependencies</id>
						<phase>package</phase>
						<goals>
							<goal>copy-dependencies</goal>
						</goals>
						<configuration>
							<outputDirectory>${basedir}/target/lib</outputDirectory>
						</configuration>
					</execution>
				</executions>
			</plugin>

			<!-- 打jar包的main方法配置 -->
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-jar-plugin</artifactId>
				<configuration>
					<archive>
						<manifest>
							<addClasspath>true</addClasspath>
							<classpathPrefix>lib/</classpathPrefix>
							<mainClass>com.menglanglang.test.springboot.App</mainClass>
						</manifest>
					</archive>
				</configuration>
			</plugin>
		</plugins>
		<!-- 。。。省略n行。。。 -->
	</build>

打包后,可以看到 target 下生成了单独的 lib 文件夹,里面放的是所有的依赖库。需要把 lib 目录及 test-springboot-1.0.jar 都上传到服务器,可以看到 test-springboot-1.0.jar 只有不到 20K。

启动程序,进行测试,可以看到和完整 jar 包一样,所有页面也都可访问。

Good Luck!

截止目前,最新代码包下载:https://pan.baidu.com/s/1MsFiZI0fW3a6eor_2WZtMw

猜你喜欢

转载自blog.csdn.net/tzhuwb/article/details/81224707
今日推荐