2016-05-27 40 views
2

我試圖在構建時根據documentation獲取pom.xml的一些屬性。在構建時獲取maven屬性

我的目標是將它們注入到我的Spring引導application.properties中,但屬性不會被替換。

這裏是我的代碼

的pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 
    <groupId>xx</groupId> 
    <artifactId>xx</artifactId> 
    <packaging>jar</packaging> 
    <version>0.0.1-SNAPSHOT</version> 
    <name>xx</name> 

    <parent> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-parent</artifactId> 
     <version>1.3.5.RELEASE</version> 
    </parent> 

<dependencies> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-context</artifactId> 
      <type>jar</type> 
      <exclusions> 
       <exclusion> 
        <groupId>commons-logging</groupId> 
        <artifactId>commons-logging</artifactId> 
       </exclusion> 
      </exclusions> 
     </dependency> 
    <dependency> 
       <groupId>junit</groupId> 
       <artifactId>junit</artifactId> 
       <scope>test</scope> 
    </dependency> 
      <dependency> 
       <groupId>org.springframework.boot</groupId> 
       <artifactId>spring-boot-starter-web</artifactId> 
       <exclusions> 
        <exclusion> 
         <groupId>org.springframework.boot</groupId> 
         <artifactId>spring-boot-starter-tomcat</artifactId> 
        </exclusion> 
       </exclusions> 
      </dependency> 
      <dependency> 
       <groupId>org.springframework.boot</groupId> 
       <artifactId>spring-boot-starter-jetty</artifactId> 
      </dependency> 
</dependencies> 

<build> 
     <finalName>xx</finalName> 
     <plugins> 
      <plugin> 
       <groupId>org.springframework.boot</groupId> 
       <artifactId>spring-boot-maven-plugin</artifactId> 
      </plugin> 
     </plugins> 
     <resources> 
      <resource> 
       <directory>src/main/resources</directory> 
       <filtering>true</filtering> 
      </resource> 
      <resource> 
       <directory>static</directory> 
       <targetPath>static</targetPath> 
      </resource> 
     </resources> 
</build> 

的src \主\資源\ application.properties

application.version=${project.version} 

難道我失去了一些東西?這應該工作嗎?

+0

@NicolasFilotto'application.version = $ {pom.version}'in **/target/classes/application.properties ** – Marc

回答

7

如果您使用的是spring引導父pom,則默認的佔位符已被重新配置爲與spring本身的$ {}語法不衝突。

要替換maven屬性,請使用@ - so @ project.version @而不是$ {project.version}。

默認情況下,將啓用對application.properties文件的過濾。

+1

它的工作原理!非常感謝 – Marc

相關問題