런타임에 종속성을 실행중인 버전과 웹 응용 프로그램 자체의 버전을 확인할 수 있기를 원합니다.Maven - 런타임시 종속성 조회
배포하는 각 웹 응용 프로그램은 읽을 수있는 pom.xml로 패키지되어 있으며, 그 부분은 사소한 것입니다. 다음 부분은 많은 노력없이 폼을 파싱합니다.
웹 응용 프로그램이 실행 중일 때 내가 어떤 버전이고 내 종속성이 어떤 버전인지 이해할 수 있기를 원합니다. 나는 것은 이런 종류의 작업을 수행하기 위해 호출 할 수 있습니다
MavenPom pom = new MavenPom(webApplicationPomInputStream);
pom.getVersion();
pom.getArtifactId();
pom.getGroupId();
for(Dependency dependency:pom.getDependencies())
{
dependency.getVersion();
dependency.getArtifactId();
dependency.getGroupId();
}
난 그냥 여기 XPath는 표기법을 사용하는 경우, 또는 라이브러리가 :
적으로는, 내가 좋아하는 뭔가를 원하십니까?
이러한 게시물을 작성한 후, 가장 빠르고 믿을 수있는 방법은 종속성 트리가있는 텍스트 파일을 생성하는 것입니다. mvn dependency : tree. 그런 다음 텍스트 파일을 구문 분석하고 groupId, artifactId 및 version을 분리 한 다음 들여 쓰기 수준에 따라 구조를 결정합니다.
내가 그렇게하면 텍스트 대신 XML로 내보낼 수 있습니까? 그런 다음 JAXB를 사용할 수 있으며 많은 작업을하지 않고도 해당 파일을 쉽게 파싱 할 수 있습니다.
해킹이지만 유망 해 보입니다.
월터
무엇을 달성하려고합니까? 메이븐 도구를 만들고 있습니까? 특정 프로젝트에 대해 알고 싶다면 'mvn dependecy : tree'를 실행하십시오. bash에서 작업하는 경우 'mvn dependency : tree | grep runtime' –