[java] 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


답변

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’