2015-10-27 8 views
6

मैं निम्नलिखित pom.xml है:प्रोफ़ाइल गुण के साथ Maven संसाधन छनन

<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>mycompany</groupId> 
    <artifactId>resource-fail</artifactId> 
    <version>0.0.1-SNAPSHOT</version> 
    <properties> 
     <foo.bar>BazBat</foo.bar> 
    </properties> 
    <build> 
     <resources> 
      <resource> 
       <filtering>true</filtering> 
       <directory>src/main/resources</directory> 
      </resource> 
     </resources> 
    </build> 
    <profiles> 
     <profile> 
      <id>Development</id> 
      <!-- 
      <activation> 
       <activeByDefault>true</activeByDefault> 
      </activation> 
      --> 
      <properties> 
       <foo.bar>Development</foo.bar> 
      </properties> 
     </profile> 
    </profiles> 
</project> 

सूचना है कि profile पर activation तत्व बाहर टिप्पणी की है

मैं भी src/main/java/application.properties

myproperty=${foo.bar} 
में निम्नलिखित है

तो मैवेन को ऐसा करने की उम्मीद है कि ${foo.bar}के साथ बस प्रतिस्थापित करें 210, जब तक विकास प्रोफ़ाइल activiated है, तो मैं Maven Development

साथ ${foo.bar} को बदलने के लिए जब मैं mvn package चलाने यह BazBat के लिए मूल्य सेट की उम्मीद है। अच्छा, संसाधन फ़िल्टरिंग अपेक्षित के रूप में काम कर रहा है।

हालांकि जब मैं mvn package -P Development चलाने यह BazBat

के लिए मूल्य सेट प्रोफ़ाइल पर आगे चीजों को भ्रमित करने के लिए, हटाएं यदि activation तत्व और mvn package चलाने ${foo.bar}Development

को मैं भी चला चुके यह सेट हो जाएगा mvn help:active-profiles package इसे सक्रिय प्रोफ़ाइल नाम आउटपुट करने के लिए और ऊपर दोनों स्थितियों के तहत यह कहता है कि विकास प्रोफ़ाइल सक्रिय है, लेकिन फ़िल्टरिंग अभी भी activeByDefault ध्वज सेट किए बिना काम नहीं करती है।

सारांश में:

  • Maven ठीक से प्रोफ़ाइल से मूल्यों के साथ गुण को ओवरराइड करता है, तो प्रोफ़ाइल activeByDefault
  • Maven करता नहीं ओवरराइड गुण है अगर मैं कमांड लाइन स्विच
  • के माध्यम से प्रोफाइल सक्रिय

क्या चल रहा है?

मेरे पर्यावरण:

> mvn -version 
Apache Maven 3.2.5 (12a6b3acb947671f09b81f49094c53f426d8cea1; 2014-12-14T11:29:23-06:00) 
Maven home: C:\apache-maven-3.2.5 
Java version: 1.8.0_65, vendor: Oracle Corporation 
Java home: C:\Program Files\Java\jdk1.8.0_65\jre 
Default locale: en_US, platform encoding: Cp1252 
OS name: "windows 7", version: "6.1", arch: "amd64", family: "dos" 

अद्यतन: मैं नवीनतम Maven (3.3.3) में अपग्रेड किया है - समस्या बनी रहती है। मेरे नए माहौल:

> mvn -version 
Apache Maven 3.3.3 (7994120775791599e205a5524ec3e0dfe41d4a06; 2015-04-22T06:57:37-05:00) 
Maven home: C:\apache-maven-3.3.3 
Java version: 1.8.0_65, vendor: Oracle Corporation 
Java home: C:\Program Files\Java\jdk1.8.0_65\jre 
Default locale: en_US, platform encoding: Cp1252 
OS name: "windows 7", version: "6.1", arch: "amd64", family: "dos" 

उत्तर

-2

आप -पी और विकास के बीच की जगह को दूर करने के लिए जब आप पर अमल की जरूरत है: mvn पैकेज -PDevelopment

संबंधित मुद्दे