메이븐의 종속성 jar 파일 목록
Maven 2를 사용하여 파일 이름만으로 jar 종속성을 나열할 수 있는 방법이 있습니까?
mvn dependency:build-classpath
jar 파일을 나열할 수 있지만 로컬저장소 내 위치에 대한 전체 경로가 포함됩니다.필요한 것은 기본적으로 파일 이름(또는 복사 종속성 목표가 복사한 파일 이름) 목록입니다.
그래서 제가 필요한 리스트는
activation-1.1.jar,antlr-2.7.6.jar,aopalliance-1.0.jar etc...
maven 속성으로 사용하는 것이 이상적이지만 build-classpath와 같은 파일로 생성할 수 있습니다.
제가 달성하려는 것은 '아쉬운'을 쓰는 것입니다.Bundle-ClassPath
수동으로 유지 보수된 매니페스트로 이동합니다.OSGi 번들의 MF 파일입니다.(질문에 답변하기 위해 이 비트를 이해할 필요는 없습니다.)
명확히 하기 위해:문제는 매니페스트 헤더를 MANIFIST에 쓰는 방법에 관한 것이 아닙니다.항아리 내의 MF 파일(구글하기 쉬운 파일).기입하고 싶은 데이터, 즉 위의 리스트를 입수하는 방법에 대해 묻고 있습니다.
이 명령어는 maven 프로젝트의 종속성 트리를 생성합니다.
$ mvn dependency:tree
결과는 마음에 드실 겁니다:-)
사실, 단지 마지막 항아리 목록을 위해, 간단히
mvn dependency:list
이는 의존관계보다 훨씬 단순합니다.트리는 상세 트랜시티브 트리와 충돌 해결(상세 설명 포함)을 표시하기 때문에 최종 목록을 얻기에는 무리한 처리입니다.
쉼표와 공백이 없으면 정확하게 출력을 얻을 수 없습니다.명령줄과 pom.xml 파일 모두에서 공백 또는 " (빈 문자열)을 다음 중 하나로 대체하면 maven-dependency-plugin 또는 CLI가 불안정해집니다.pathSeparator
또는fileSeparator
그래서 어쩔 수 없이 타협을 해야 할 수도 있습니다.넌 할 수 있다.
mvn 의존관계: build-classpath -Dmdep.pathSeparator=":-Dmdep.prefix="-Dmdep.fileSeparator=":-Dmdep.outputFile=classpath
단, 전체 목록을 다음에 따라 구분하여 표시합니다.'::'
뿐만 아니라','
,하지만 그것은 효과가 있다.실행하는 경우:
mvn 의존관계: build-classpath -Dmdep.pathSeparator="@REPLACEWITHCOMMA" -Dmdep.pileSeparator="@" -Dmdep.outputFile=classpath
그리고 이것을 에 부착합니다.generate-resources
에서 올바른 속성을 설정하여 나중에 해당 리소스를 단계화하고 필터링합니다.process-resources
콤마만 얻을 수 있습니다.
옵션의 전체 목록은 http://maven.apache.org/plugins/maven-dependency-plugin/build-classpath-mojo.html 에서 확인할 수 있습니다.
여기 당신이 요구하는 명령어가 있습니다.
$ mvn dependency:tree
대규모 프로젝트에서는 많은 텍스트를 출력할 수 있습니다.종속성 트리에 특정 종속성이 포함되어 있는지 확인하고 싶기 때문에 전체 목록은 필요하지 않습니다.
다음은 Windows에서 출력을 필터링하는 방법입니다.
$ mvn dependency:tree | findstr javax.persistence
Linux 에서는 다음과 같이 실행할 수 있습니다.
$ mvn dependency:tree | grep javax.persistence
종속성 트리를 필터링하는 방법(Windows cmd, MacOS 및 Linux 쉘에서 작동):
$ mvn dependency:tree -Dincludes=javax.persistence:*
Maven way(Windows PowerShell):
$ mvn dependency:tree '-Dincludes=javax.persistence:*'
아파치 펠릭스 프로젝트 봤어요?원하는 기능을 수행하는 번들 플러그인을 포함하여 모든 플러그인이 뒤죽박죽으로 되어 있습니다.
, ㅇㅇㅇ, ㅇㅇ, ㅇㅇ, ㅇㅇ, ㅇㅇ, ㅇ, ㅇ,<addClasspath>
를 달다<manifestFile>
manifest에 클래스 수
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
...
<configuration>
<archive>
<addClasspath>true</addClasspath>
<manifestFile>src/main/resources/META-INF/MANIFEST.MF</manifestFile>
</archive>
</configuration>
...
</plugin>
여기서 뭔가 부족한 점이 있을 수 있지만, 이미 복사 의존성을 사용했기 때문에 실제로 원하는 것은 지정된 디렉토리에 있는 파일 목록일 뿐입니다.
개미는 셸 스크립트와 마찬가지로 문제 없이 이 작업을 수행할 수 있습니다.
Maven은 당신의 매니페스트에 classpath를 자동으로 구축할 수 있습니다.http://maven.apache.org/guides/mini/guide-manifest.html
Maven 아카이브 플러그인의 구성입니다.
기존 응답에 노치를 추가하기 위해 현재 maven-dependency-plugin에서는 파라미터로 속성에 클래스 경로를 저장할 수 있습니다.
피리를 불기 위한 .mvn dependency:list
:
mvn dependency:list | awk -f mvnfmt.awk
하면 돼요.| sort
또는 ""를 선택합니다.| tr '\n' ':'
클래스 패스로 포맷합니다.
mvnfmt.awk
말합니다
BEGIN {
found = 0
}
/The following files have been resolved/ {
found = 1
next
}
/^\[INFO\] \$/ {
print "Empty " found
if (found != 0) found = 0
}
{
if (!found) next
n = split($0, a, " ")
if (n != 2) {
found = 0
next
}
split(a[2], a, ":")
print a[2] "-" a[4] "." a[3]
}
언급URL : https://stackoverflow.com/questions/278596/list-of-dependency-jar-files-in-maven
'programing' 카테고리의 다른 글
PHP 경고: 모듈이 0행의 알 수 없는 위치에 이미 로드되었습니다. (0) | 2022.09.22 |
---|---|
JavaScript를 사용하여 HTML 형식의 요소에 포커스를 설정하려면 어떻게 해야 합니까? (0) | 2022.09.22 |
Linux 서브시스템을 탑재한 GCC를 탑재한 Windows용 실행 파일을 컴파일 하는 방법 (0) | 2022.09.22 |
Apache Commons는 왜 '२३?' 숫자를 고려합니까? (0) | 2022.09.22 |
CDI와 EJB는 어떻게 비교됩니까?인터랙티브? (0) | 2022.09.22 |