Maven'de harici özellikler dosyası nasıl okunur


127

Maven'de bir x.properties dosyasını nasıl okuyacağını bilen var mı? Bir özellikler dosyasını okumak ve ondan değerleri ayarlamak için kaynak filtrelemeyi kullanmanın yolları olduğunu biliyorum, ancak pom.xml dosyamda şöyle bir yol istiyorum:

<properties file="x.properties"> 

</properties>

Bununla ilgili bazı tartışmalar yapıldı: Maven External Properties


Yalnızca birkaç değeriniz varsa ve farklı kullanıcıların farklı değerlere ihtiyacı olacaksa, bunun yerine değeri sizin değerinize koymayısettings.xml düşünün .
Raedwald

Yanıtlar:


95

1
Sanırım aradığım şey bu maven depolarında 1.0-SNAPSHOT'u bulamadım ama bir sürüm var: mvnrepository.com/artifact/org.codehaus.mojo/… <dependency> <groupId> org.codehaus .mojo </groupId> <artifactId> properties-maven-plugin </artifactId> <version> 1.0-alpha-1 </version> </dependency>
Dougnukem


Mevcut sürüm: <groupid> org.codehaus.mojo </ groupid> <artifactId> özellikleri-maven-eklentisi </ artifactId> <sürüm> 1.0-alfa-2-SNAPSHOT </ sürüm> den snapshots.repository.codehaus.org
Huluvu424242

2
Yanıttaki bağlantı, @JesseGlick'ten yeni bağlantıya güncellendi
Jon Adams

1
Windows'ta bu eklentiyle ilgili sorunlar yaşadım. Birinin de sorunları varsa, bunun yerine kuali'yi deneyin .
2013

56

Önerilen Maven özellikleri eklentisini kullanarak, yapılarımı sürümlendirmek için kullandığım bir buildNumber.properties dosyasını okuyabildim.

  <build>    
    <plugins>
      <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>${basedir}/../project-parent/buildNumber.properties</file>
              </files>
            </configuration>
          </execution>
        </executions>
      </plugin>
   </plugins>

9
buildNumber.properties dosyasının içini gösterebilir misiniz? teşekkür ederim!
victorio

Çalışan bir örnek için teşekkürler. Ancak, neden bir hata aldımPlugin execution not covered by lifecycle configuration: org.codehaus.mojo:properties-maven-plugin:1.0-alpha-1:read-project-properties (execution: default, phase: initialize)
WesternGun

Bu <plugin> bölümüne <plugins> altında </build> sonra ve normal maven eklentilerinden önce girdiğimde şu hatayı alıyorum:Plugin 'execution' not covered by lifecycle configuration: org.codehaus.mojo:properties-maven-plugin:1.0-alpha-1:read-project-properties (execution: default, phase: initialize)
PraNuta

@BorisBrodski, buildNumber.properties dosyasının içini gösterebilir misiniz? Görünüşe göre bazı ayrıntıları silmişsiniz.
Moustafa Mahmoud

@MoustafaMahmoud neden ben? Cevabım bu değil :) Ancak bunun 'my.great.product.version = 1.0.0' gibi görünebileceğini tahmin edebilirim.
Boris Brodski

5

Benzer bir soruya verilen bu cevap , özellikler eklentisinin özellikler dosyası için uzak bir tanımlayıcı kullanabilmesi için nasıl genişletileceğini açıklar. Tanımlayıcı temelde bir özellikler dosyası içeren bir jar yapıttır (özellikler dosyası src / main / resources altında bulunur).

Tanımlayıcı, genişletilmiş özellikler eklentisine bir bağımlılık olarak eklenir, böylece eklentinin sınıf yolunda olur. Eklenti, özellikler dosyası için sınıf yolunu arayacak, dosyanın içeriğini bir Özellikler örneğine okuyacak ve bu özellikleri projenin yapılandırmasına uygulayacaktır, böylece bunlar başka yerlerde kullanılabilir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.