내 자바 받는다는 프로젝트는 하위 프로젝트의 잔뜩 들어있는 종속성을 찾을 수있는 방법은 모든 프로젝트 'pom.xml
파일에서 아래버전을 지정하지 명시 적으로
|- parent |- core |- db |- xml |- util |- config
같은 존재 정의 된 몇 가지 종속성이 있습니다. 그러나 그 중 일부에만 대해서만 <version/>
이 지정됩니다. 예를
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.apache.ant</groupId>
<artifactId>ant</artifactId>
<version>1.9.7</version>
</dependency>
<dependency>
<groupId>org.apache.xmlbeans</groupId>
<artifactId>xmlbeans</artifactId>
</dependency>
</dependencies>
</dependencyManagement>
를 들어 당신이 볼 수 있듯이, org.apache.ant
를 들어, version
명시 적으로 1.9.7
로 언급된다. 그러나 org.apache.xmlbeans
의 경우 여러 요인에 따라 버전이 자동으로 유추됩니다. 편리한 기능이기는하지만 타사 라이브러리 프로젝트가 매우 활발하고 다른 종속성을 가질 수있는 경우 버전을 예측할 수 없게 만듭니다.
따라서 질문은 이 아니며이 아닌 모든 종속성이 명시 적으로 지정된 version
으로되어 있습니다.
나는 help:effective-pom
을 시도했다. 모든 하위 프로젝트의 모든 종속성을 나열하지만 유추 된 버전도 출력합니다.
effective-pom
변종을보고 있는데, 모든 하위 프로젝트에 대한 모든 종속성을 재귀 적으로 나열하지만 명시 적으로 명시하지 않는 한 자동으로 버전을 가져 오지는 않습니다. XML 형식의 목록이 있으면 XML 출력에 xqueries를 적용하여 원하는 내용을 필터링하고 필요한 변경을 수행 할 수 있습니다.
편집 : <version>
태그가없는 종속성을 찾고 있습니다. 범위는 내가 메이븐에서 직접이 문제를 해결할 수있는 방법을 모르는 Ranges
dependencyManagement는 종속성 선언을위한 것이 아니므로 dependencyManagement의 버전과의 종속성을 가질 수 있지만 버전없는 실제 종속성을 가질 수 있습니다. 두 버전 모두 실제로 버전이 선언 될 때 제대로 작동합니다. 당신의 질문이 실제로 무엇인지 확실하지 않음 –
버전없이 dependencyManagement에서 의존성을 정의하고 경고를받지 못하면 종속성은 이미 다른 곳에서 (아마 부모에서) 정의됩니다. 그렇지 않으면 버전없이 종속성에 대한 경고를 받게됩니다 ... – khmarbaise
동의 한 @AdrianShum. 그리고 그것은 당신의 의견이 저를 생각하게 만들었습니다. 내 불안정한 빌드가 예측할 수없는 버전의 종속성 때문이 아닌 것 같습니다. [플러그인 자동 해결] (https://cwiki.apache.org/confluence/display/MAVEN/Maven+3.x+Compatibility+Notes#Maven3.xCompatibilityNotes-AutomaticPluginVersionResolution) 때문일 가능성이 큽니다. 감사! –