2011-11-16 99 views
5

外面有沒有辦法來定義POM文件超出了我的Maven的配置文件,但在.m2目錄/ settings.xml中沒有
我想定義他們在單獨的XML文件裏面應用(方式與Maven 2高效工作和3),因爲我使用maven 2,並打算很快切換到3。定義Maven的配置文件POM

回答

1

直到Maven 2.2.1您可以將您的配置文件定義到profiles.xml文件中作爲單獨的文件,但使用Maven 3時,此機會已被刪除。問題是爲什麼你需要一個單獨的文件的配置文件?

+4

因爲我有很多配置文件,並且每個配置文件都包含很多屬性,並且pom文件越來越多這麼大。 –

+0

如果使用包含配置文件的超級pom,假設它們適用於不同的項目類型,那麼如何使用它?然後,您的項目poms可以使用該父項目,而不必重新定義所有這些常見行爲。 – RonU

+0

這種方式的網址請在單獨的答案是更可取的? –

1

您可能想要通過構建配置文件上的this maven documentation,其中描述了配置文件的類型以及每個配置文件的使用方式。

正如我所看到的,如果您想使用maven 3,則無法在pom.xmlsettings.xml之外定義配置文件。

0

我最近正在將一個應用程序從maven2遷移到maven3。有了maven 3,就不可能擁有外部配置文件。但是可以做的是擁有外部屬性文件。這可以通過行家 - 屬性 - 插件來實現

<plugin> 
<groupId>org.codehaus.mojo</groupId> 
<artifactId>properties-maven-plugin</artifactId> 
<version>1.0-alpha-2</version> 
<executions> 
    <!-- Associate the read-project-properties goal with the initialize phase, 
    to read the properties file. --> 
    <execution> 
    <phase>initialize</phase> 
    <goals> 
    <goal>read-project-properties</goal> 
    </goals> 
    <configuration> 
    <files> 
    <file>../com.tak/build.properties</file> 
    </files> 
    </configuration> 
    </execution> 
</executions> 
</plugin> 

所以在這裏我已經解釋瞭如何做到這一點http://programtalk.com/java/migrate-from-maven2x-to-maven3x/

0
<profiles> 
    <profile> 
     <id>dev</id> 
     <activation> 
      <activeByDefault>true</activeByDefault> 
     </activation> 
     <properties> 
      <build.profile.id>dev</build.profile.id> 
     </properties> 
    </profile> 
    <profile> 
     <id>prod</id> 
     <properties> 
      <build.profile.id>prod</build.profile.id> 
     </properties> 
    </profile> 
    <profile> 
     <id>test</id> 
     <properties> 
      <build.profile.id>test</build.profile.id> 
     </properties> 
    </profile> 
</profiles> 

,並添加過濾器

<filters> 
    <filter>src/test/resources/${build.profile.id}/config.properties</filter> 
</filters> 

並添加目錄( dev,prod,test)

相關問題