Cara membaca file properti eksternal di Maven


127

Adakah yang tahu cara membaca file x.properties di Maven. Saya tahu ada cara untuk menggunakan pemfilteran sumber daya untuk membaca file properti dan menetapkan nilai dari itu, tapi saya ingin cara di pom.xml saya seperti:

<properties file="x.properties"> 

</properties>

Ada beberapa diskusi tentang ini: Maven External Properties


Jika Anda hanya memiliki beberapa nilai, dan pengguna yang berbeda akan membutuhkan nilai yang berbeda, pertimbangkan untuk memasukkan nilai tersebut ke dalamsettings.xml .
Raedwald

Jawaban:


95

1
Saya pikir itulah yang saya cari, saya tidak dapat menemukan 1.0-SNAPSHOT di repositori maven tetapi ada rilis: 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


Versi saat ini: <groupId> org.codehaus.mojo </groupId> <artifactId> properti-maven-plugin </artifactId> <version> 1.0-alpha-2-SNAPSHOT </version> dari snapshots.repository.codehaus.org
Huluvu424242

2
Tautan dalam Jawaban telah diperbarui ke tautan baru dari @JesseGlick
Jon Adams

1
Saya punya masalah dengan plugin ini di Windows. Jika seseorang memiliki masalah juga, cobalah kuali .
pertama

56

Menggunakan plugin properti Maven yang disarankan, saya bisa membaca di file buildNumber.properties yang saya gunakan untuk versi build saya.

  <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
dapatkah Anda memperlihatkan bagian dalam file buildNumber.properties? Terima kasih!
victorio

Terima kasih atas contohnya. Namun, mengapa saya mendapatkan kesalahanPlugin execution not covered by lifecycle configuration: org.codehaus.mojo:properties-maven-plugin:1.0-alpha-1:read-project-properties (execution: default, phase: initialize)
WesternGun

Ketika saya memasukkan bagian <plugin> ini di bawah <plugins> setelah </build> dan sebelum plugin maven biasa, saya mendapatkan kesalahan ini: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 dapatkah Anda memperlihatkan bagian dalam file buildNumber.properties? Tampaknya Anda menghapus beberapa detail.
Moustafa Mahmoud

@MoustafaMahmoud mengapa saya? Itu bukan jawaban saya :) Tapi saya bisa berspekulasi, bahwa itu bisa terlihat seperti 'my.great.product.version = 1.0.0'.
Boris Brodski

5

Ini jawaban untuk pertanyaan serupa menjelaskan bagaimana untuk memperpanjang sifat Plugin sehingga dapat menggunakan deskriptor remote untuk file properti. Deskriptor pada dasarnya adalah sebuah artefak jar yang berisi file properti (file properti dimasukkan di bawah src / main / resources).

Deskriptor ditambahkan sebagai ketergantungan pada plugin properti extended sehingga berada di classpath plugin. Plugin akan mencari classpath untuk file properti, membaca konten file ke dalam instance Properties, dan menerapkan properti itu ke konfigurasi proyek sehingga mereka dapat digunakan di tempat lain.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.