Maven에서 외부 속성 파일을 읽는 방법


127

누구나 Maven에서 x.properties 파일을 읽는 방법을 알고 있습니다. 리소스 필터링을 사용하여 속성 파일을 읽고 그 값을 설정하는 방법이 있지만 pom.xml에서 다음과 같은 방법을 원합니다.

<properties file="x.properties"> 

</properties>

이에 대한 논의가있었습니다 : Maven External Properties


몇 개의 값만 있고 다른 사용자에게 다른 값이 필요한 경우 대신 에 값을 입력하십시오settings.xml .
Raedwald

답변:


95

1
나는 그것이 내가 찾고있는 것이라고 생각한다. 나는 maven 저장소에서 1.0-SNAPSHOT을 찾을 수 없지만 릴리스가있다 : 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


현재 버전 : <groupId> org.codehaus.mojo </ groupId> <artifactId> properties-maven-plugin </ artifactId> <version> snapshots.repository.codehaus.org의
Huluvu424242

2
답변의 링크가 @JesseGlick의 새 링크로 업데이트되었습니다
Jon Adams

1
Windows에서이 플러그인에 문제가있었습니다. 누군가도 문제가 있다면 대신 kuali 를 사용해보십시오 .
11

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

</ build> 이후 및 일반 maven 플러그인 전에 <plugins> 아래에이 <plugin> 섹션을 입력하면 다음 오류가 발생합니다.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 파일의 내부를 보여줄 수 있습니까? 세부 정보를 삭제 한 것 같습니다.
Moustafa Mahmoud

@MoustafaMahmoud 왜 나야? 그것은 내 대답이 아닙니다 :) 그러나 나는 그것이 'my.great.product.version = 1.0.0'처럼 보일 수 있다고 추측 할 수 있습니다.
Boris Brodski

5

비슷한 질문에 대한 이 답변 에서는 속성 플러그인을 확장하여 속성 파일에 대한 원격 설명자를 사용할 수있는 방법을 설명합니다. 디스크립터는 기본적으로 특성 파일을 포함하는 jar 아티팩트입니다 (특성 파일은 src / main / resources에 포함됨).

디스크립터는 확장 특성 플러그인에 대한 종속성으로 추가되므로 플러그인의 클래스 경로에 있습니다. 플러그인은 속성 파일에 대한 클래스 경로를 검색하고 파일의 내용을 Properties 인스턴스로 읽고 해당 속성을 프로젝트 구성에 적용하여 다른 곳에서 사용할 수 있도록합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.