在maven pom.xml中加載不同的properties ,如localhost 和 dev master等jdbc.properties 中的鏈接不一樣


【參考】:maven pom.xml加載不同properties配置[轉]

 首先 看看效果:

點開我們項目中的Maven projects 后,會發現右側 我們profile有個可勾選選項。默認勾選localhost。localhost對應項目啟動后,會加載配置左側localhost文件夾下面的jdbc.perperties 和 redis.properties。 對於項目中存在測試數據庫或者運行數據庫的區分的時候 我們可以通過勾選快速切換。那么我們是如何實現的呢

一:在左側文件目錄項目 配置相對於的文件目錄,並且注釋掉你之前的加載 ,如圖所示,

配置好所需的jdbc 鏈接   需要注意的 (正確寫法)url=jdbc:mysql://127.0.0.1:3306/course_design?useUnicode=true&characterEncoding=UTF-8 中間的間隔符 必須用 & 替換掉之前寫的 (錯誤寫法)url=jdbc:mysql://127.0.0.1:3306/course_design?useUnicode=true&characterEncoding=UTF-8

具體原因參考   Caused by: org.xml.sax.SAXParseException; lineNumber: 30; columnNumber: 84; 對實體 "characterEncoding"

 

                                        

 

 二:配置 pom.xml

 

 <!--配置profiles-->
  <profiles>
    <profile>
      <id>localhost</id>
      <!--默認勾選設置-->
      <activation>
        <activeByDefault>true</activeByDefault>
      </activation>
      <properties>
        <env>localhost</env>
      </properties>
    </profile>

    <profile>
      <id>dev</id>
      <properties>
        <env>dev</env>
      </properties>
    </profile>
    <profile>
      <id>master</id>
      <properties>
        <env>master</env>
      </properties>
    </profile>
  </profiles>

    <build>
        ......................................
    </build>

 

 

<build>
.............................
<!--指定待加載的文件位置--> <filters> <filter>configs/${env}/jdbc.properties</filter> <filter>configs/${env}/redis.properties</filter> </filters> <!--指定需要這些加載數據的 配置文件位置--> <resources> <resource> <directory>src/main/resources</directory> <includes> <include>**/**</include> </includes> <filtering>true</filtering> </resource> </resources> </build>

 

理論上 這個時候 以及在pom,xml中 配置完成了 點擊編譯之后 如果 正常是可以的

但我這里報錯了  3 字節的 UTF-8 序列的字節 3 無效   后來查詢資料 發現還需要配置一個utf-8編譯 【參考】http://blog.csdn.net/lzupb/article/details/53008481

<!-- resource插件 -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-resources-plugin</artifactId>
                <version>2.6</version>
                <configuration>
                    <encoding>UTF-8</encoding>
                </configuration>
            </plugin>

 

 其實后來 還有一個問題 就是

  1. : Exception sending context initialized event to listener instance of class org.springframework.web.context.ContextLoaderListener  
  2. org.springframework.beans.factory.xml.XmlBeanDefinitionStoreException: Line 30 in XML document from class path resource [applicationContext.xml] is invalid; nested exception is org.xml.sax.SAXParseException; lineNumber: 30; columnNumber: 84; 對實體 "characterEncoding" 的引用必須以 ';' 分隔符結尾。  這樣的的一個異常

這個時候 前面介紹的jdbc url寫法就解決了  把&  變成 &amp; 就好了

 


免責聲明!

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



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