使用maven-resources-plugin插件,方便在本地测试和部署时分别使用不同的配置文件,也可以在打包的时候复制其他文件到项目中,比如前后端合并部署的情况。
省去了打完包再来复制配置文件的情形。
也可以使用maven-antrun-plugin来实现,效果是一样的。
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<fork>true</fork>
<!-- 启动class路径 -->
<mainClass>com.xxx.StartsysApplication</mainClass>
</configuration>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>${java.version}</source>
<target>${java.version}</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
<!-- 打包替换配置,打包发布后本地启动时,建议先clean或build一下,防止使用发布配置启动 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<configuration>
<encoding>${project.build.sourceEncoding}</encoding>
</configuration>
<executions>
<execution>
<id>copy-spring-boot-resources</id>
<phase>compile</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<encoding>utf-8</encoding>
<!-- 需要被覆盖替换的目录 -->
<outputDirectory>${basedir}/target/classes/</outputDirectory>
<resources>
<resource>
<!-- 需要复制的原文件目录 -->
<directory>${basedir}/src/main/build_prod</directory>
<includes>
<include>*.*</include>
</includes>
<filtering>true</filtering>
</resource>
</resources>
</configuration>
</execution>
<!-- 其他文件复制替换等 -->
<execution>
<id>copy-spring-boot-resources-front</id>
<phase>compile</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<encoding>utf-8</encoding>
<outputDirectory>${basedir}/target/classes/template/</outputDirectory>
<resources>
<resource>
<directory>F:\project\front\dist</directory>
<includes>
<include>**</include>
</includes>
<filtering>true</filtering>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>