前言
為了業務需要配置文件和jar分離,便於使用者修改配置信息,在網上找了很久,最終找到一個簡單有效的方法。
操作步驟
打開project工程的pom.xml文件,將下列配置粘貼到pom文件中:
<properties> <java.version>1.8</java.version> <!--在此配置打包輸出的路徑--> <directory>d:/out/</directory> </properties> <build> <plugins> <!--上線部署 JAR啟動分離依賴lib和配置--> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-resources-plugin</artifactId> <version>3.1.0</version> </plugin> <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> <!--不打包資源文件--> <excludes> <exclude>*.**</exclude> </excludes> <archive> <manifest> <addClasspath>true</addClasspath> <classpathPrefix>lib/</classpathPrefix> <!--jar包不包含唯一版本標識--> <useUniqueVersions>false</useUniqueVersions> <!--程序啟動類application.java的路徑--> <mainClass>com.sy.xx.Application</mainClass> </manifest> <!-- 指定配置文件目錄,這樣jar運行時會去找到同目錄下的config文件夾下查找 --> <manifestEntries> <Class-Path>config/</Class-Path> </manifestEntries> </archive> <outputDirectory>${directory}</outputDirectory> </configuration> </plugin> <!--拷貝依賴 copy-dependencies--> <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> ${directory}/lib/ </outputDirectory> </configuration> </execution> </executions> </plugin> <!--拷貝資源文件 copy-resources--> <plugin> <artifactId>maven-resources-plugin</artifactId> <executions> <execution> <id>copy-resources</id> <phase>package</phase> <goals> <goal>copy-resources</goal> </goals> <configuration> <resources> <resource> <directory>src/main/resources</directory> <!-- 指定參與構建的resoures--> <includes> <include>*.**</include> </includes> </resource> </resources> <outputDirectory>${directory}/config</outputDirectory> </configuration> </execution> </executions> </plugin> </plugins> </build>
接下來使用maven package打包即可:
打包之后的樣子:
這樣就完成了配置文件以及lib包和jar的分離了,並且jar在運行的時候會默認去讀取config文件夾中的配置,修改起來非常方便。