我们在用springboot开发时,时常会遇到这种问题,当我们对程序做了一个小改动时,如果要将改动后的程序发布到生产环境,则需要将整个程序重新打包,然后将打完的包发布到生产环境上,这样有个问题,如果依赖的jar包很多,就会导致所打的包很大,每次修改都需重新复制,这样就会导致效率很低,因此,为了提高效率,我们可以将依赖的jar包与程序分别放在不同地方,这样只需第一次将依赖的jar包与所打程序包复制到开发环境,后面如果只是程序上的修改就可以只需重新打程序包,然后复制,这样就会节省很多时间。
pom文件如下所示,首先需要加入依赖的打包文件:
<dependency>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>2.4.3</version>
</dependency>
<dependency>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>3.1.0</version>
</dependency>
配置如下:
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<classpathPrefix>lib/</classpathPrefix>
<mainClass>com.hfz.hfzadmin.HfzadminApplication</mainClass>
</manifest>
</archive>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<id>copy-dependencies</id>
<phase>prepare-package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<outputDirectory>${project.build.directory}/lib</outputDirectory>
<overWriteReleases>false</overWriteReleases>
<overWriteSnapshots>false</overWriteSnapshots>
<overWriteIfNewer>true</overWriteIfNewer>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
上面一个配置是指定程序依赖包的位置,下面一个是指定将依赖的jar包存放的位置。重新打包后的文件目录结构如下所示: