Maven 저장소에서 소스 JAR 가져 오기
Maven 저장소에서 소스 JAR을 찾을 수 있는지 아는 사람이 있습니까?
Maven Micro-Tip : 소스 및 Javadoc 가져 오기
IDE에서 Maven을 사용하는 경우 라이브러리 종속성에 대한 소스 코드 및 Javadoc을 해결하기 위해 IDE가 필요한 경우가 종종 있습니다. 그 목표를 달성하는 쉬운 방법이 있습니다.
mvn dependency:sources mvn dependency:resolve -Dclassifier=javadoc
첫 번째 명령은 pom 파일의 각 종속성에 대한 소스 코드 다운로드를 시도합니다.
두 번째 명령은 Javadocs 다운로드를 시도합니다.
Maven은 여기 도서관 포장업자의 자비에 있습니다. 그래서 그들 중 일부는 소스 코드가 패키지되어 있지 않으며 많은 것들은 Javadoc을 갖지 않을 것입니다.
종속성이 많은 경우 포함 / 제외를 사용하여 특정 아티팩트를 얻는 것이 좋습니다. 예를 들어 다음 명령은 특정 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
명령 행에서 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는 고급 검색을 사용함). 예를 들어이 검색 을 참조하십시오 .
특정 소스 또는 javadoc 을 다운로드하려면 GroupId를 포함해야합니다. 아래에 표시된대로 쉼표로 구분 된 값입니다.
mvn dependency:sources -DincludeGroupIds=com.jcraft,org.testng -Dclassifier=sources
분류자는 쉼표로 구분되지 않습니다. javadoc을 다운로드하려면 분류자를 javadoc로 사용하여 위 명령을 한 번 더 실행해야합니다.
mvn dependency:sources -DincludeGroupIds=com.jcraft,org.testng -Dclassifier=javadoc
IntelliJ Idea 의 maven idea 플러그인 을 사용하면 소스 및 Java doc을 해결하고 다운로드해야하는지 여부를 지정할 수 있습니다.
mvn idea:idea -DdownloadSources=true -DdownloadJavadocs=true
이슈를 다운로드하려면
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을 열고 이슈 소스 다운로드를 선택하면 pom.xml이 손상되지 않고 머신 위치 ~ / .m2에서 바로 개발을 위해 소스 또는 Java 문서 (선택한 경우)를 유지할 수 있습니다
이클립스에서
- 오른쪽 클릭
pom.xml
- 선택
Run As
->Maven generate-sources
.m2 폴더에 기본적으로 소스를 생성합니다
전제 조건 :
Maven은 Eclipse로 구성해야합니다.
일식에서-프로젝트를 클릭 한 다음 :
업로드 된 경우 가능합니다. 일반적으로 "frameworkname-version-source (s)"라고합니다.
NetBeans, 컨텍스트 클릭
Maven 기반 프로젝트가있는 NetBeans 8 에서는 관심있는 종속성의 jar 파일 목록 항목을 컨텍스트 클릭하면됩니다. 를 선택하십시오 Download Sources
. 잠시만 기다려주십시오. NetBeans는 사용 가능한 경우 자동으로 소스 코드를 다운로드하여 설치합니다.
마찬가지로 Download Javadoc
문서를 로컬로 설치 하도록 선택할 수 있습니다 . 그런 다음 편집기에서 일부 코드를 컨텍스트 클릭하고 JavaDoc을 보도록 선택할 수 있습니다.
Based on watching the Maven console in Eclipse (Kepler), sources will be automatically downloaded for a Maven dependency if you attempt to open a class from said Maven dependency in the editor for which you do not have the sources downloaded already. This is handy when you don't want to grab source for all of your dependencies, but you don't know which ones you want ahead of time (and you're using Eclipse).
I ended up using @GabrielRamierez's approach, but will employ @PascalThivent's approach going forward.
I have also used the eclipse plugin to get the project into the eclipse workspace. Since I've worked on a different project I saw that it is possible to work with eclipse but without the maven-eclipse-plugin. That makes it easier to use with different environments and enables the easy use of maven over eclipse. And that without changing the pom.xml-file.
So, I recommend the approach of Gabriel Ramirez.
If you know the groupId and aritifactId,you can generate download url like this.
<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/
and you will get a page like this, chose the version you need,just enjoy it!
디버깅을 위해 다음과 같은 "Java Decompiler"를 사용할 수도 있습니다. JAD 및 디 컴파일 소스 (즉, 생성 된 소스가 원래 소스와 동일하지는 않지만). 그런 다음 Eclipse 또는 선호하는 IDE에서 플러그인으로 JAD를 설치하십시오.
참고 URL : https://stackoverflow.com/questions/2059431/get-source-jars-from-maven-repository
'Programming' 카테고리의 다른 글
IntelliJ IDEA에서 JavaDoc을 보는 방법은 무엇입니까? (0) | 2020.02.18 |
---|---|
LINQ to SQL의 내부 조인 구문은 무엇입니까? (0) | 2020.02.18 |
'정적'키워드는 클래스에서 무엇을합니까? (0) | 2020.02.18 |
배열 필드가 비어 있지 않은 MongoDB 레코드 찾기 (0) | 2020.02.18 |
jQuery 또는 getElementById와 같은 DOM 메소드가 요소를 찾지 못하는 이유는 무엇입니까? (0) | 2020.02.17 |