Maven 관리 종속성을 위해 Eclipse에 첨부 된 소스 jar 파일 가져 오기


176

Maven (및 Maven Eclipse Integration)을 사용하여 Eclipse에서 Java 프로젝트의 종속성을 관리하고 있습니다. Maven 저장소의 JAR 파일에 대한 자동 다운로드 기능은 실시간 절약 기능입니다. 불행히도 API 문서 및 소스 코드는 포함되어 있지 않습니다.

소스 및 javadoc 첨부 파일을 자동으로 가져 와서 Eclipse에 올바르게 등록하도록 Maven을 어떻게 설정합니까?


maven을 사용할 때 항상 소스와 javadoc을 다운로드 하는 방법을 묻는 관련 질문 : stackoverflow.com/questions/5780758/…
Flow

답변:


226

Eclipse 용 m2eclipse Maven 플러그인-다른 방법으로도 그렇게 할 수 있다고 확신합니다. 소스 파일과 javadoc을 자동으로 다운로드하도록 구성 할 수 있습니다.

창> 환경 설정> Maven으로 이동하여 "아티팩트 소스 다운로드"및 "아티팩트 JavaDoc 다운로드"옵션을 확인하면됩니다.

Maven Preferences의 스크린 샷


예, 방금 m2eclipse를 사용하기 시작했으며 이것 (그리고 많은 다른 것들)이 필요합니다.
Thilo

44
이 답변 중 어느 것도 답이 아닙니다. 왜 투표되고 있습니까? 네비게이터보기에서 프로젝트를 제어 클릭하고 "m2 Maven"-> "소스 다운로드"를 선택하여 소스를 다운로드 할 수있었습니다. 그런 다음 클래스에서 명령을 클릭 (mac)하여 연결된 소스로 이동할 수있었습니다.
Alex Worden

8
컴파일 된 JAR이 이미 다운로드 된 경우 Eclipse는 소스 / Javadoc JAR을 즉시 가져 오지 않습니다. Eclipse에서 소스 / Javadoc을 원하는 POM에 대한 종속성을 포함하는 POM을 수정하고 POM을 저장하면 컴파일 된 JAR이 이미 Maven 저장소 캐시에 있더라도 종속성에 대한 소스 / Javadoc을 다운로드하는 것으로 보입니다.
Francis Gagné

13
@Francis-위의 변경을 한 후 프로젝트를 마우스 오른쪽 버튼으로 클릭하고 "Maven> Update Project ..."를 선택하면 소스 jar이 다운로드됩니다.
carbontax

3
모든 종속성에 대한 소스를 다운로드하는 대신 종속성 자체와 함께 pom에 지정하여 일부 종속성에 대해서만 다운로드 할 수 있습니까? 종속성 태그의 일부 내부 태그 또는 유사한 것을 통해 b?
nanosoft

127
mvn eclipse:eclipse -DdownloadSources=true

또는

mvn eclipse:eclipse -DdownloadJavadocs=true

Spencer K가 지적한 것처럼 두 플래그를 모두 추가 할 수 있습니다.

또한이 =true부분은 필요하지 않으므로 사용할 수 있습니다

mvn eclipse:eclipse -DdownloadSources -DdownloadJavadocs

8
아니면 둘다! mvn eclipse : eclipse -DdownloadSources = true -DdownloadJavadocs = true 소스 및 javadoc이 다운로드중인 리포지토리에 제공된 경우에만 작동합니다. 때로는 봄처럼 제공되지 않습니다.
Spencer Kormos

2
봄은 이제 그들을 제공합니다.
Robin Green

이 답변은 10 세 이상입니다. maven이 Eclipse 구성 파일을 작성하는 대신 Eclipse에서 m2e 플러그인을 사용하십시오.
Thorbjørn Ravn Andersen은

71

이 작업에 대한 다른 답변이지만 명령 줄 인수를 기억하지 않으려면 pom.xml의 maven-eclipse-plugin 섹션에 downloadSources 및 downloadJavadocs 구성에 추가하면됩니다.

<project>
    ...
    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-eclipse-plugin</artifactId>
                <configuration>
                    <downloadSources>true</downloadSources>
                    <downloadJavadocs>true</downloadJavadocs>
                    ... other stuff ...
                </configuration>
            </plugin>
        </plugins>
    </build>
    ...
</project>

의존성 수준에서 이것을 설정할 수 있습니까?
marcorossi

@marcorossi 죄송합니다. 가능한지 잘 모르겠습니다.
overthink

이것이 적절하다고 확신하지 않습니다. 분명히 소스 및 Javadoc 다운로드 설정은 프로젝트 수준의 문제가 아닌 사용자 기본 설정입니까? 이것을 파일 에 배치하는 방법에 대해서는 아래 답변을 참조하십시오 settings.xml.
Duncan Jones

다음 경고가 표시됩니다. [경고] org.apache.maven.plugins : maven-eclipse-plugin에 대한 'build.plugins.plugin.version'이 없습니다. 이를 해결하기 위해 <artifactId> 아래에 다음과 같은 것을 추가 할 수 있습니다 : <version> 2.9 </ version>
Christiaan

16

소스 / Javadoc 다운로드 설정을 프로젝트 pom.xml파일에 넣지 않는 것이 좋습니다. 프로젝트 속성이 아니라 사용자 기본 설정이라고 생각합니다. 대신, 나는 그것들을 내 settings.xml파일 의 프로파일에 넣습니다 .

<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">

  <profiles>
    <profile>
      <id>sources-and-javadocs</id>
      <properties>
        <downloadSources>true</downloadSources>
        <downloadJavadocs>true</downloadJavadocs>
      </properties>
    </profile>
  </profiles>

  <activeProfiles>
    <activeProfile>sources-and-javadocs</activeProfile>
  </activeProfiles>
</settings>

1
이 settings.xml을 .m2로 복사했지만 소스 및 javadoc은 복사되지 않습니다. CLI에서 명시 적으로 다음 명령은 소스와 javadoc을 가져옵니다. mvn dependency : sources dependency : resolve -Dclassifier = javadoc 어떤 생각이 있습니까?
Arun Gupta

아마도 이것이 작동하지만 maven eclipse plugin이 어떻게 이러한 구성 설정을 찾도록되어 있습니까? 글로벌 속성을 찾는다고 생각하십니까?
chrisinmtown

9

프로젝트-> maven-> 다운로드 소스를 마우스 오른쪽 버튼으로 클릭하십시오.


3
모두는 소스를 다운로드하기 위해 maven을 얻는 방법이 아니라 활성화하는 방법을 말했습니다! 옵션을 활성화 한 후
Chad

8

소스 jar이 로컬 저장소에 있고 Eclipse maven 지원을 사용중인 경우 소스가 자동으로 첨부됩니다. mvn dependency:sources주어진 프로젝트에 대한 모든 소스 jar을 다운로드하기 위해 실행할 수 있습니다 . 그래도 문서와 동일한 방법을 모릅니다.


이것은 나를 위해 일했습니다. 를 실행 한 후 mvn dependency:sourcesEclipse에서 클릭 연결하여 소스를 읽을 수있었습니다. m2e를 사용한 추가 뭉킹이 필요하지 않습니다. 당신이하는 javadocs를 다운로드하려면 mvn dependency:sources -Dclassifier=javadoc.
Mat Gessel

4

당신이 meclipse를 사용하는 경우

창-> maven-> 아티팩트 소스 다운로드 (확인 선택)

(여전히 소스 첨부 창을 받으면 파일 첨부 단추를 클릭하고 소스 첨부 창을 닫으십시오. 다음에 소스를 보려고하면 올바른 소스가 열립니다)

수 라즈



3

나는 windows-> pref ..-> Maven을 시도했지만 작동하지 않았다. 따라서 mvn eclipse : eclipse -DdownloadSources = true 명령으로 새 클래스 경로를 작성하고 작업 공간을 한 번 새로 고쳤습니다. 짜잔 .. 출처가 첨부되었습니다.

소스 jar의 항목은 클래스 경로에서 사용할 수 있습니다. 따라서 새로운 빌드로 문제가 해결되었습니다 ...


귀하의 솔루션을 사용하여 소스를 구할 모듈을 선택하고 선택할 수 있습니다. 간단히 해당 모듈로 들어가서 "mvn eclipse : clean eclipse : eclipse -DdownloadSources = true -T4 -Dmaven.test.skip = true -Denforcer.skip = true"로 빌드하십시오. 감사합니다 :)
vishwarajanand

2

m2Eclipse가있는 Eclipse helios 버전에는 없습니다.

window --> maven --> Download Artifact Sources (select check)

창 아래에는 "새 창", "새 편집기" "열린 원근"등 만 있습니다.

프로젝트를 마우스 오른쪽 버튼으로 클릭하면 maven-> 소스 다운로드를 선택하십시오.

아무 반응이 없습니다. 소스를 다운로드하지 않고, pom 파일을 업데이트하지 않으며, 어떤 소스를 묻는 창이 나타나지 않습니다.

이클립스 외부에서 mvn xxx를하는 것은 위험합니다-일부 명령은 m2ecilpse와 함께 작동하지 않습니다-한 번 해본 결과 전체 프로젝트가 손실되고 일식을 다시 설치하고 처음부터 시작해야했습니다.

나는 아직도 서블릿 -api와 같은 외부 항아리의 출처를 찾아 사용하기 위해 ecilpse와 maven을 얻는 방법을 찾고 있습니다.


2

maven-eclipse-plugin의 pom을 소스 / javadoc을 포함하도록 변경하면 pom에 추가되는 새로운 종속성에 적용됩니다. 기존 종속성을 적용해야하는 경우 mvn dependency : sources를 실행해야합니다. 나는 이것을 확인했다.


2

Eclipse-Maven 환경 설정에서 다운로드 소스 / javadoc을 확인하는 것만으로는 충분하지 않습니다. maven이 어떤 이유로 네트워크 다운로드가 실패한 경우 (네트워크 중단?) maven은 * .lastUpdated 파일을 생성 한 다음 다시 다운로드하지 않습니다. 내 경험적 해결책은 .m2 / repository에서 artifact 디렉토리를 삭제하고 다운로드 소스 / javadoc을 확인하고 Eclipse를 검사 할 때 Eclipse 작업 공간을 다시 시작하는 것입니다. 작업 공간이 다시 시작된 후 일식 진행률이 다운로드되는 동안 일부 프로젝트가 오류로 표시 될 수 있으며 모든 오류가 지워집니다. 어쩌면이 절차는 "과학적인"것은 아니지만 나에게는 성공했다.


1

소스 및 javadocs를 다운로드하기 위해 pom 구성을 maven-eclipse 플러그인에 추가했지만 기존 종속성이 아닌 새로운 종속성에 대해 발생할 것으로 생각합니다.

기존 종속성의 경우 패키지 탐색기에서 "Maven Dependencies"까지 찾아보고 commons-lang-2.5.jar을 마우스 오른쪽 단추로 클릭하고 Maven | 소스를 다운로드하면 ... 아무 일도 일어나지 않은 것 같습니다 (진행률 표시 줄이나 아무것도하지 않았다는 표시가 없음). 그러나 이제 commons-lang의 소스로 이동할 수 있으므로 다운로드했습니다.


1

overthink는 치어의 설정을 사용하여 제안 :

<project>
...
<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-eclipse-plugin</artifactId>
            <configuration>
                <downloadSources>true</downloadSources>
                <downloadJavadocs>true</downloadJavadocs>
                ... other stuff ...
            </configuration>
        </plugin>
    </plgins>
</build>
...

먼저 이것이 여전히 javadoc과 소스를 첨부하지 않을 것이라고 생각했습니다 (이전에 -DdownloadSources 옵션으로 실패했지만).

그러나 놀랍게도 .classpath 파일은 POM 변형을 사용할 때 소스와 javadoc을 첨부하고 있습니다!


1

Indigo (및 아마도 Helios)의 경우 위에서 언급 한 확인란이 여기에 있습니다.

창-> 환경 설정-> Maven


0

나는 비슷한 문제가 있고, 저를 위해 최선을 다했다 솔루션 (항아리에 주어진 디렉토리가 모두 포함 할 수 있도록 컴파일 된 코드와 같은 항아리에 소스를 포함하는 것이었다 Foo.javaFoo.class). Eclipse는 소스를 컴파일 된 코드와 자동으로 연관시키고 소스에서 JavaDoc을 자동으로 제공합니다. 분명히 아티팩트를 제어하는 ​​경우에만 유용합니다.


0

프로젝트 수준 또는 사용자 속성 수준에서 속성을 설정 한 후 Maven-> 프로젝트 업데이트 (강제 업데이트)를 수행하십시오. 그것은 소스를 다운로드

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.