Maven (및 Maven Eclipse Integration)을 사용하여 Eclipse에서 Java 프로젝트의 종속성을 관리하고 있습니다. Maven 저장소의 JAR 파일에 대한 자동 다운로드 기능은 실시간 절약 기능입니다. 불행히도 API 문서 및 소스 코드는 포함되어 있지 않습니다.
소스 및 javadoc 첨부 파일을 자동으로 가져 와서 Eclipse에 올바르게 등록하도록 Maven을 어떻게 설정합니까?
Maven (및 Maven Eclipse Integration)을 사용하여 Eclipse에서 Java 프로젝트의 종속성을 관리하고 있습니다. Maven 저장소의 JAR 파일에 대한 자동 다운로드 기능은 실시간 절약 기능입니다. 불행히도 API 문서 및 소스 코드는 포함되어 있지 않습니다.
소스 및 javadoc 첨부 파일을 자동으로 가져 와서 Eclipse에 올바르게 등록하도록 Maven을 어떻게 설정합니까?
답변:
Eclipse 용 m2eclipse Maven 플러그인-다른 방법으로도 그렇게 할 수 있다고 확신합니다. 소스 파일과 javadoc을 자동으로 다운로드하도록 구성 할 수 있습니다.
창> 환경 설정> Maven으로 이동하여 "아티팩트 소스 다운로드"및 "아티팩트 JavaDoc 다운로드"옵션을 확인하면됩니다.
mvn eclipse:eclipse -DdownloadSources=true
또는
mvn eclipse:eclipse -DdownloadJavadocs=true
Spencer K가 지적한 것처럼 두 플래그를 모두 추가 할 수 있습니다.
또한이 =true
부분은 필요하지 않으므로 사용할 수 있습니다
mvn eclipse:eclipse -DdownloadSources -DdownloadJavadocs
이 작업에 대한 다른 답변이지만 명령 줄 인수를 기억하지 않으려면 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>
settings.xml
.
소스 / 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>
소스 jar이 로컬 저장소에 있고 Eclipse maven 지원을 사용중인 경우 소스가 자동으로 첨부됩니다. mvn dependency:sources
주어진 프로젝트에 대한 모든 소스 jar을 다운로드하기 위해 실행할 수 있습니다 . 그래도 문서와 동일한 방법을 모릅니다.
mvn dependency:sources
Eclipse에서 클릭 연결하여 소스를 읽을 수있었습니다. m2e를 사용한 추가 뭉킹이 필요하지 않습니다. 당신이하는 javadocs를 다운로드하려면 mvn dependency:sources -Dclassifier=javadoc
.
나는 windows-> pref ..-> Maven을 시도했지만 작동하지 않았다. 따라서 mvn eclipse : eclipse -DdownloadSources = true 명령으로 새 클래스 경로를 작성하고 작업 공간을 한 번 새로 고쳤습니다. 짜잔 .. 출처가 첨부되었습니다.
소스 jar의 항목은 클래스 경로에서 사용할 수 있습니다. 따라서 새로운 빌드로 문제가 해결되었습니다 ...
m2Eclipse가있는 Eclipse helios 버전에는 없습니다.
window --> maven --> Download Artifact Sources (select check)
창 아래에는 "새 창", "새 편집기" "열린 원근"등 만 있습니다.
프로젝트를 마우스 오른쪽 버튼으로 클릭하면 maven-> 소스 다운로드를 선택하십시오.
아무 반응이 없습니다. 소스를 다운로드하지 않고, pom 파일을 업데이트하지 않으며, 어떤 소스를 묻는 창이 나타나지 않습니다.
이클립스 외부에서 mvn xxx를하는 것은 위험합니다-일부 명령은 m2ecilpse와 함께 작동하지 않습니다-한 번 해본 결과 전체 프로젝트가 손실되고 일식을 다시 설치하고 처음부터 시작해야했습니다.
나는 아직도 서블릿 -api와 같은 외부 항아리의 출처를 찾아 사용하기 위해 ecilpse와 maven을 얻는 방법을 찾고 있습니다.
Eclipse-Maven 환경 설정에서 다운로드 소스 / javadoc을 확인하는 것만으로는 충분하지 않습니다. maven이 어떤 이유로 네트워크 다운로드가 실패한 경우 (네트워크 중단?) maven은 * .lastUpdated 파일을 생성 한 다음 다시 다운로드하지 않습니다. 내 경험적 해결책은 .m2 / repository에서 artifact 디렉토리를 삭제하고 다운로드 소스 / javadoc을 확인하고 Eclipse를 검사 할 때 Eclipse 작업 공간을 다시 시작하는 것입니다. 작업 공간이 다시 시작된 후 일식 진행률이 다운로드되는 동안 일부 프로젝트가 오류로 표시 될 수 있으며 모든 오류가 지워집니다. 어쩌면이 절차는 "과학적인"것은 아니지만 나에게는 성공했다.
소스 및 javadocs를 다운로드하기 위해 pom 구성을 maven-eclipse 플러그인에 추가했지만 기존 종속성이 아닌 새로운 종속성에 대해 발생할 것으로 생각합니다.
기존 종속성의 경우 패키지 탐색기에서 "Maven Dependencies"까지 찾아보고 commons-lang-2.5.jar을 마우스 오른쪽 단추로 클릭하고 Maven | 소스를 다운로드하면 ... 아무 일도 일어나지 않은 것 같습니다 (진행률 표시 줄이나 아무것도하지 않았다는 표시가 없음). 그러나 이제 commons-lang의 소스로 이동할 수 있으므로 다운로드했습니다.
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을 첨부하고 있습니다!