SORU
18 HAZİRAN 2009, PERŞEMBE


Üst dizini gösteren Maven2 özelliği

Çoklu modülleri bir proje, bunun gibi:

main-project/
    module1/
    module2/
        sub-module1/
        sub-module2/
        sub-module3/
        ...
    module3/
    module4/
    ...

Maven2 özellikleri bir dizi olan projemi yayınlamak istiyorum çevreye bağımlı () tanımlamak gerekiyor. Özellikleri bir sürü var gibi <properties> kullanmayacağım... Böylece, Properties Maven2 plugin kullanıyorum.

Özellikleri main-project/ dizininde bulunan dosyaları. Nasıl ana doğru dizin özellikleri, dosya bulmak için herhangi bir çocuk için belirtmek için pom.xml set alabilir miyim?

<plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>properties-maven-plugin</artifactId>
    <version>1.0-alpha-1</version>
    <executions>
        <execution>
            <phase>initialize</phase>
            <goals>
                <goal>read-project-properties</goal>
            </goals>
            <configuration>
                <files>
                    <file>???/env_${env}.properties</file>
                </files>
            </configuration>
        </execution>
    </executions>
</plugin>

Ancak o zaman Maven2 ilk modülü derler <file>env_${env}.properties</file>, main-project/env_dev.properties dosyayı bulmak. Eğer başım belaya girerse <file>../env_${env}.properties</file>, Bir hata alt modül herhangi bir düzeyde, bir üst düzeyde, ya da ortaya çıkacaktır.

CEVAP
19 HAZİRAN 2009, Cuma


Her pom bir özellik ana proje dizini bulmak için ayarlamayı deneyin.

Üst:

<properties>
    <main.basedir>${project.basedir}</main.basedir>
</properties>

Çocukları:

<properties>
    <main.basedir>${project.parent.basedir}</main.basedir>
</properties>

İçinde torunları:

<properties>
    <main.basedir>${project.parent.parent.basedir}</main.basedir>
</properties>

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Benjamin Heckendorn

    Benjamin Hec

    4 Mayıs 2008
  • BlackmillMusic

    BlackmillMus

    3 Kasım 2010
  • InfinityWard

    InfinityWard

    19 EYLÜL 2006