Як прочитати файл зовнішніх властивостей у Maven


127

Хтось знає, як читати файл x.properties в Maven. Я знаю, що є способи використання фільтрації ресурсів для зчитування файлу властивостей і встановлення значень з цього, але я хочу спосіб у своєму pom.xml, наприклад:

<properties file="x.properties"> 

</properties>

З цього приводу було обговорено: зовнішні властивості Maven


Якщо у вас є лише кілька значень, і різним користувачам знадобляться різні значення, замість цього введіть значення у своєsettings.xml .
Raedwald

Відповіді:


95

1
Я думаю, що це те, що я шукаю, я не зміг знайти 1,0-SNAPSHOT у сховищах maven, але є випуск: mvnrepository.com/artifact/org.codehaus.mojo/… <dependency> <groupId> org.codehaus .mojo </groupId> <artifactId> властивості-maven-plugin </artifactId> <version> 1.0-alpha-1 </version> </dependency>
Dougnukem

3
Поточне посилання: mojo.codehaus.org/properties-maven-plugin/…
Jesse Glick

Поточна версія: <groupId> org.codehaus.mojo </groupId> <artifactId> властивості-maven-плагін </artifactId> <version> 1.0-alpha-2-SNAPSHOT </version> від snapshots.repository.codehaus.org
Huluvu424242

2
Посилання у відповіді оновлено до нового посилання від @JesseGlick
Jon Adams

1
У мене виникли проблеми з цим плагіном у Windows. Якщо у когось теж є проблеми, спробуйте замість цього куалі .
fnst

56

Використовуючи запропонований плагін властивостей Maven, я зміг прочитати у файлі buildNumber.properties, який я використовую для версії моїх збірок.

  <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? спасибі!
victorio

Дякую за робочий приклад. Однак чому я отримав помилкуPlugin execution not covered by lifecycle configuration: org.codehaus.mojo:properties-maven-plugin:1.0-alpha-1:read-project-properties (execution: default, phase: initialize)
WesternGun

Коли я входжу в цей розділ <plugin> під <plugins> після </build> і перед звичайними плагінами Maven, я отримую цю помилку: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? Здається, ви видалили деякі деталі.
Мустафа Махмуд

@MoustafaMahmoud чому я? Це не моя відповідь :) Але я можу припустити, що це може виглядати як "my.great.product.version = 1.0.0".
Борис Бродський

5

Ця відповідь на подібне запитання описує, як розширити плагін властивостей, щоб він міг використовувати віддалений дескриптор для файлу властивостей. Дескриптор - це в основному артефакт jar, що містить файл властивостей (файл властивостей включений у src / main / ресурси).

Дескриптор додається як залежність до плагіна розширених властивостей, тому він знаходиться на класному шляху плагіна. Плагін буде шукати у класі властивостей файл властивостей, читати вміст файлу в екземплярі Properties, і застосовувати ці властивості до конфігурації проекту, щоб їх можна було використовувати в іншому місці.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.