2012-08-09 3 views
1

특정 종속성에 대해 POM에서 LATEST 및 RELEASE 키워드를 사용하고있는 상황에서 작업하고 있습니다 (종속성과 프로젝트 모두 Google 소유이므로 최신 버전과 릴리스 버전을 제어합니다 ...). 한 번에 하나의 버전 만 지원). 이러한 키워드를 사용하면 출시 후 필요한 유지 관리 작업을 최소화 할 수 있습니다.런타임에 속성에 Maven 종속성을 가져올 수 있습니까?

압축 해제 된 종속성에서 DLL을 복사해야하는 단계가 있지만 특정 버전을 지정하지 않았으므로 압축 해제 된 종속성의 버전 번호를 하드 코딩하여 매번 업데이트해야합니다 해제. Maven 속성에서이 종속성의 버전을 런타임에 얻는 방법이 있습니까?

maven-dependency-plugin (http://maven.apache.org/plugins/maven-dependency-plugin/index.html)의 속성 목표는 로컬 저장소에서 이슈의 위치를 ​​얻습니다. 내가 뭘 찾고 있는지). depends-maven-plugin (여기에 표시 : http://team.ops4j.org/wiki/display/paxexam/Pax+Exam+-+Tutorial+1)은 다양한 종속성과 버전을 포함하는 파일을 생성 할 수 있지만이를 사용하려면 프로세스에서 파일을 읽고 해당 정보를 활용해야합니다. 종속성 버전의 속성에 액세스하는 것과 같은 "Maven 방식"이 더 있는지 궁금합니다.

편집 : 설명을 위해 버전 번호가 필요하므로 파일을 복사하기 위해 압축을 푼 종속성의 디렉토리로 이동할 수 있습니다.

+2

SNAPSHOT을 사용하지 않는 이유는 무엇입니까? – khmarbaise

+1

이것은 도움이 될 수 있습니다 ... [this] (http://stackoverflow.com/questions/2359872/can-i-use-the-path-to-a-maven-dependency-as-a-property)에 따르면 당신은 다음을 사용하여 로컬 저장소의 jar 경로를 참조 할 수 있습니다. $ {maven.dependency.com.foo.Bar.jar.path} – BenjaminLinus

+0

외부에서 삽입 된 속성에 의해 정의 된 종속성을 만들면 빌드를 만듭니다. 작동하지 않는 재현 불가능. – khmarbaise

답변

0

난 당신이 '받는다는 방법'에 무슨 뜻인지 모르겠어요하지만 같은 플러그인을보고 한 후이 같은 짓을 이미 언급 :

<build> 
<plugins> 
    <plugin> 
    <groupId>org.codehaus.gmaven</groupId> 
    <artifactId>gmaven-plugin</artifactId> 
    <version>1.5</version> 
    <executions> 
     <execution> 
     <phase>initialize</phase> 
     <goals> 
      <goal>execute</goal> 
     </goals> 
     <configuration> 
      <source>                                                             
      project.properties.put('firstdependencyinthepom', project.dependencies[0]['version'])                                            
      project.properties.put('seconddependencyinthepom', project.dependencies[1]['version'])                                            
      </source> 
     </configuration> 
     </execution> 
    </executions> 
    </plugin> 

을하고 내가 버전을 참조 할 수 있었다 $ {firstdependencyinthepom} 및 $ {seconddependencyinthepom}과 각각의 종속성.

+0

죄송합니다. 답변을 드리기 위해 조금 시간이 걸렸습니다. 그것은 흥미로운 아이디어이지만 언급 한 $ {firstdependencyinthepom}에 "RELEASE"또는 "LATEST"중 하나가 표시됩니다. 실제 버전은 실제로 해결되지 않습니다. FYI ... By "Maven way"나는 본질적으로 Maven 내에서 일하는 것을 의미하며 이상하게 느껴지는 것을하지 않는다. 예를 들어, Maven을 사용하여 정보가 포함 된 파일을 생성 한 다음 Maven으로 다시 읽어들이는 방법을 언급했다. – Michael

관련 문제