springboot打包去除資源文件,啟動時指定配置文件位置,使用log4j2替換默認logback


springboot打包時,去掉資源文件

<build>
        <resources>
            <resource>
                <directory>src/main/resources</directory>
                <excludes>
                    <exclude>*.properties</exclude>
                    <exclude>*.xml</exclude>
                </excludes>
            </resource>
        </resources>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
            
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>  
                <artifactId>maven-surefire-plugin</artifactId>  
                <configuration>  
                  <skipTests>true</skipTests>  
                </configuration>
            </plugin>
        </plugins>
    </build>

但這樣配置后,在eclipse中啟動springboot項目,則會出現讀取不到配置資源的情況,所以在eclipse啟動項目時,需要注釋掉如下配置

<resources>
        <resource>
            <directory>src/main/resources</directory>
                <excludes>
                    <exclude>*.properties</exclude>
                    <exclude>*.xml</exclude>
                </excludes>
        </resource>
</resources> 

如果修改了pom文件之后,程序運行異常,如果使用eclipse,則可通過右鍵Maven -- Update Project更新下maven依賴,再次啟動服務

 啟動時指定配置文件位置

項目打成jar包后,運行時,可將配置文件放入jar包同級目錄下或者在同級的config目錄下(放入classpath下或者classpath下config目錄下也可以,但是打成jar包,就需要一起打包出來)

配置文件加載順序為:

jar包同級目錄下的config文件夾下配置

jar包同級目錄下配置

classpath下config目錄下配置

classpath下配置

java -Xms100m -Xmx100m -jar myboot001-0.0.1-SNAPSHOT.jar &

也可指定加載配置文件的地址

java -Xms100m -Xmx100m -jar myboot001-0.0.1-SNAPSHOT.jar --spring.config.location=configs/application.properties  --logging.config=./log4j2.xml  >> /dev/null 2>&1 &

以DEBUG方式啟動

java -Xms100m -Xmx100m -jar myboot001-0.0.1-SNAPSHOT.jar --spring.config.location=configs/application.properties --debug

 使用log4j2替換默認日志框架logback

添加log4j2日志框架依賴

<dependency>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter-log4j2</artifactId>
</dependency>

此時啟動服務時,將會有如下提示

從日志記錄看,依然使用的為logback日志,網上搜索了一些資料得知,需要排除掉默認的日志框架才會生效

本例使用了兩個spring-boot-starter-data-redis和spring-boot-starter-jdbc依賴,且它們也都有日志框架的依賴,排除默認框架時,只需將寫在最前面的starter依賴中添加排除默認日志框架的代碼即可

<dependency>
       <groupId>org.springframework.boot</groupId>
       <artifactId>spring-boot-starter-data-redis</artifactId>
       <exclusions>
             <exclusion>    
                   <groupId>org.springframework.boot</groupId>
                   <artifactId>spring-boot-starter-logging</artifactId>
             </exclusion>
       </exclusions>
</dependency>
<dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>

或者添加如下依賴處理(位置不限)

 <dependency>
       <groupId>org.springframework.boot</groupId>
       <artifactId>spring-boot-starter</artifactId>
       <exclusions>
              <exclusion>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-starter-logging</artifactId>
              </exclusion>
       </exclusions>
 </dependency>

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM