Maven 저장소에서 소스 JAR을 찾을 수 있는지 아는 사람이 있습니까?
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
mvn dependency:resolve -Dclassifier=javadoc
하게 IntelliJ IDEA는 자동으로 아주 좋은입니다의 javadoc를 통지.
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>
mvn eclipse:eclipse
POM 파일에 추가 하면 소스 및 문서가 실행될 때 다운로드 됩니까?
M2_REPO
일반 jar와 동일한 위치에 xxxx-yy-sources.jar 로 jar로 다운로드됩니다 . 라이브러리에서 xxxx-yy jar의 소스 코드로 첨부됩니다
프로젝트가 프로젝트 소스의 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'
Maven 기반 프로젝트가있는 NetBeans 8 에서는 관심있는 종속성의 jar 파일 목록 항목을 컨텍스트 클릭하면됩니다. 를 선택하십시오 Download Sources
. 잠시만 기다려주십시오. NetBeans는 사용 가능한 경우 자동으로 소스 코드를 다운로드하여 설치합니다.
마찬가지로 Download Javadoc
문서를 로컬로 설치 하도록 선택할 수 있습니다 . 그런 다음 편집기에서 일부 코드를 컨텍스트 클릭하고 JavaDoc을 보도록 선택할 수 있습니다.
Eclipse (Kepler)에서 Maven 콘솔을 보면서 소스를 아직 다운로드하지 않은 편집기에서 Maven 종속성에서 클래스를 열려고하면 소스가 Maven 종속성에 대해 자동으로 다운로드됩니다. 이것은 모든 의존성에 대한 소스를 얻고 싶지 않지만 미리 원하는 것을 모르고 Eclipse를 사용하는 경우에 유용합니다.
나는 @GabrielRamierez의 접근법 을 사용했지만 결국 @PascalThivent의 접근법을 사용할 것입니다.
groupId 및 aritifactId 를 알고 있으면 다음 과 같이 다운로드 URL을 생성 할 수 있습니다.
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.2.3</version>
</dependency>
http://central.maven.org/maven2/ch/qos/logback/logback-classic/
Maven 저장소는 소스 jar를 다운로드하는 간단한 방법을 제공합니다.
"spring-boot-actuator-autoconfigure"데모를 사용하여 설명하겠습니다.
그렇지 않으면 github에서 repo를 항상 "git clone"하여 특정 코드를 얻을 수 있습니다.
다른 사람들이 설명했듯이 "mvn dependency : sources"명령을 사용하여 사용중인 종속성에 대한 get 및 generate source jar을 사용할 수 있습니다.
참고 : 일부 종속성에는 소스 코드가 아닌 pom 파일이 포함되어 있기 때문에 sources.jar이 없습니다. 예를 들어 spring-boot-starter-actuator . 이 경우와 같이 :
스타터 POM은 응용 프로그램에 포함 할 수있는 편리한 종속성 설명자 집합입니다. 샘플 코드를 찾아 내고 붙여 넣기로드 의존성 설명자를 복사하지 않고도 필요한 모든 Spring 및 관련 기술에 대한 원 스톱 상점을 얻을 수 있습니다.
참조 : 스프링 부트 스타터 소개
아티팩트의 소스 jar 파일을 수동으로 찾으려면 특정 아티팩트의 maven 저장소 위치로 이동하고 파일에서 '모두보기'를 클릭하십시오. 소스 jar 파일을 찾을 수 있습니다.