Maven 저장소에서 소스 JAR을 찾을 수 있는지 아는 사람이 있습니까?
답변
Maven Micro-Tip : 소스 및 Javadoc 가져 오기
IDE에서 Maven을 사용하는 경우 라이브러리 종속성에 대한 소스 코드 및 Javadoc을 해결하기 위해 IDE가 필요하다는 것을 종종 알 수 있습니다. 그 목표를 달성하는 쉬운 방법이 있습니다.
mvn dependency:sources mvn dependency:resolve -Dclassifier=javadoc
첫 번째 명령은 pom 파일의 각 종속성에 대한 소스 코드 다운로드를 시도합니다.
두 번째 명령은 Javadocs 다운로드를 시도합니다.
Maven은 여기 도서관 포장업자의 자비에 있습니다. 그래서 그들 중 일부는 소스 코드가 패키지되어 있지 않으며 많은 것들은 Javadocs를 갖지 않을 것입니다.
종속성이 많은 경우 포함 / 제외를 사용하여 특정 아티팩트를 얻는 것이 좋습니다. 예를 들어 다음 명령은 특정 artifactId와의 종속성에 대한 소스 만 다운로드합니다.
mvn dependency:sources -DincludeArtifactIds=guava
출처 : http://tedwise.com/2010/01/27/maven-micro-tip-get-sources-and-javadocs/
설명서 : https://maven.apache.org/plugins/maven-dependency-plugin/sources-mojo.html
답변
maven-eclipse 플러그인 구성 및 실행 (예 : 명령 행 mvn eclipse:eclipse
)
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-eclipse-plugin</artifactId>
<configuration>
<downloadSources>true</downloadSources>
<downloadJavadocs>true</downloadJavadocs>
</configuration>
</plugin>
</plugins>
</build>
답변
프로젝트가 프로젝트 소스의 jar 파일을 작성하고 maven 저장소에 배치하면 다음을 찾을 수 있습니다. 🙂
참고로 소스 아티팩트는 일반적으로 maven-source-plugin에 의해 생성됩니다 . 이 플러그인은 소스 플러그인 구성에 설명 된대로 프로젝트의 기본 또는 테스트 소스를 jar 아카이브에 번들 할 수 있습니다 .
(…) 생성 된 jar 파일은
finalName
주 소스 인 경우 더하기 “-sources” 값으로 이름이 지정됩니다 . 그렇지 않으면finalName
테스트 소스 인 경우 플러스 “-test-sources”가됩니다.
아티팩트 ( “-sources”또는 “-test-sources”)를 설명하기 위해 추가 텍스트를 분류 자라고합니다.
분류자를 사용하는 이슈에 대한 종속성을 선언하려면 <classifier>
요소 를 추가하기 만하면 됩니다. 예를 들면 다음과 같습니다.
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate</artifactId>
<version>3.2.7.ga</version>
<classifier>sources</classifier>
</dependency>
일반적으로이 작업을 수행하지 않으면 대부분의 IDE는 명시 적으로 종속성을 선언하지 않고 주 아티팩트에서 소스 (및 / 또는 JavaDoc)를 다운로드 할 수 있도록 지원합니다.
마지막으로 일부 리포지토리 검색 엔진에서는 분류기를 사용하여 아티팩트를 검색 할 수 있습니다 (적어도 Nexus는 고급 검색을 사용함). 예를 들어이 검색 을 참조하십시오 .
답변
IntelliJ Idea 의 maven idea 플러그인 을 사용하면 소스 및 Java doc을 해결하고 다운로드해야하는지 여부를 지정할 수 있습니다.
mvn idea:idea -DdownloadSources=true -DdownloadJavadocs=true
답변
특정 소스 또는 javadoc 을 다운로드하려면 GroupId를 포함해야합니다. 아래에 표시된대로 쉼표로 구분 된 값입니다.
mvn dependency:sources -DincludeGroupIds=com.jcraft,org.testng -Dclassifier=sources
분류자는 쉼표로 구분되지 않으므로 javadoc을 다운로드하려면 분류자를 javadoc로 사용하여 위 명령을 한 번 더 실행해야합니다.
mvn dependency:sources -DincludeGroupIds=com.jcraft,org.testng -Dclassifier=javadoc
답변
이슈를 다운로드하려면
mvn dependency:get -Dartifact=groupId:artifactId:version:packaging:classifier
Groovy 소스의 경우
mvn dependency:get -Dartifact=org.codehaus.groovy:groovy-all:2.4.6:jar:sources
Groovy의 javadoc의 경우 다음을 사용합니다.
mvn dependency:get -Dartifact=org.codehaus.groovy:groovy-all:2.4.6:jar:javadoc
이것은 주어진 아티팩트를 로컬 Maven 저장소에 넣습니다 $HOME/.m2/repository
.
dependency:sources
플러그인 소스 나 플러그인 내에 정의 된 종속성 소스가 아닌 프로젝트 종속성 소스 만 다운로드합니다.
답변
이 관련 질문에서 정보를 찾을 수 있습니다
.eclipse maven 플러그인을 사용하는 경우 Eclipse에 Maven 관리 종속성에 대한 소스 jar 파일을
가져온 다음 ‘mvn eclipse : eclipse -DdownloadSources = true’