programing

메이븐 관리 종속성에 대한 Eclipse에 연결된 소스 jar 파일 가져오기

starjava 2023. 4. 27. 21:45
반응형

메이븐 관리 종속성에 대한 Eclipse에 연결된 소스 jar 파일 가져오기

저는 이클립스의 Java 프로젝트에 대한 종속성을 관리하기 위해 메이븐(및 메이븐 이클립스 통합)을 사용하고 있습니다.Maven 저장소에서 JAR 파일을 자동으로 다운로드하는 기능은 실시간으로 절약할 수 있습니다.안타깝게도 API 설명서와 소스 코드는 포함되어 있지 않습니다.

소스 및 자바독 첨부 파일도 자동으로 가져오고 이클립스에 제대로 등록하도록 메이븐을 설정하려면 어떻게 해야 합니까?

나는 이클립스용 m2eclipse 메이븐 플러그인이 - 반대로 - 그것을 할 수 있다고 확신합니다.소스 파일과 javadoc를 자동으로 다운로드하도록 구성할 수 있습니다.

이 작업은 다음 항목으로 이동하여 수행됩니다.Window > Preferences > Maven and checking the "Download Artifact Sources" and "Download Artifact JavaDoc"옵션들.

메이븐 기본 설정 스크린샷

mvn eclipse:eclipse -DdownloadSources=true

또는

mvn eclipse:eclipse -DdownloadJavadocs=true

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

추가적으로,=true 없기 를 사용할 수 .

mvn eclipse:eclipse -DdownloadSources -DdownloadJavadocs

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

<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>

는 source 것을 합니다.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>

을 오른쪽 버튼으로 합니다.project -> maven -> download sources

소스 병이 로컬 리포지토리에 있고 Eclipse maven 지원을 사용하는 경우 소스가 자동으로 연결됩니다.실행할 수 있습니다.mvn dependency:sources지정된 프로젝트에 대한 모든 소스 병을 다운로드합니다.하지만 설명서에서도 동일한 방법을 사용할 수 있는지는 잘 모르겠습니다.

meclip을 사용하는 경우 수행

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

원본 첨부 창이 계속 표시되면 파일 첨부 단추를 클릭하고 원본 첨부 창을 닫습니다.다음 번에 소스를 보려고 하면 올바른 소스가 열립니다.)

이에 대한 답변과 예제 폼 설정을 포함하는 유사한 질문도 있습니다.

나는 노력했다.windows->pref..->Maven하지만 잘 되지 않았습니다.따라서 mvn eclipse 명령을 사용하여 새 클래스 경로를 생성했습니다. mvn eclipse -DdownloadSources=true 명령을 사용하여 작업 공간을 한 번 새로 고쳤습니다.voila... 되었습니다.소스가 첨부되었습니다.

원본 jar의 항목을 클래스 경로에서 사용할 수 있습니다.그래서 새로운 빌드가 문제를 해결했습니다.

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

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

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

오른쪽 버튼으로 에는 " 젝트를마오우단클추경릭우한로른쪽스프로경우▁if클,"를 선택합니다.maven--> download sources

아무 일도 없습니다.소스가 다운로드되지 않고, POM 파일이 업데이트되지 않으며, 어떤 소스인지 묻는 창이 뜨지 않습니다.

eclipse 외부에서 mvn xxx를 수행하는 것은 위험합니다. - 일부 명령은 m2ecilse와 함께 작동하지 않습니다. - 저는 한 번 했고 전체 프로젝트를 잃었고 eclipse를 다시 설치하고 처음부터 시작해야 했습니다.

저는 여전히 서블릿-api와 같은 외부 항아리의 소스를 찾아서 사용할 수 있는 방법을 찾고 있습니다.

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

Eclipse-Maven 기본 설정에서 다운로드 소스/javadoc을 확인하는 것만으로는 충분하지 않을 수 있습니다.메이븐이 어떤 이유로 다운로드에 실패한 경우(네트워크 정전?) 메이븐은 일부 *.lastUpdated 파일을 생성한 다음 다시 다운로드하지 않습니다.경험적 해결책은 .m2/repository에서 아티팩트 디렉터리를 삭제하고 다운로드 소스/javadoc이 확인된 상태에서 이클립스 작업 공간을 다시 시작하고 시작 시 프로젝트 업데이트도 확인하는 것이었습니다.작업 공간을 다시 시작한 후 일부 프로젝트가 오류로 표시될 수 있습니다. Eclipse 진행률이 다운로드되는 동안 오류가 제거됩니다.아마도 이 절차는 그렇게 "과학적"이지는 않지만, 저에게는 성공적이었습니다.

소스와 자바독을 다운로드하기 위해 메이븐-이클립스 플러그인에 폼 구성을 추가했지만, 기존 종속성이 아닌 새로운 종속성에 대해서는 그렇게 되길 바랍니다.

기존 종속성의 경우 패키지 탐색기에서 "Maven Dependencies"를 찾아 commons-lang-2.5.jar를 마우스 오른쪽 버튼으로 클릭하고 Maven | Download Sources를 선택하고...아무 일도 일어나지 않은 것처럼 보였습니다(진행 표시줄이나 진행 중이라는 표시 없음).하지만 이제 커먼즈 랭에서 소스로 이동할 수 있기 때문에 다운로드가 되었습니다.

폼의 설정을 사용하여 제안된 과잉 생각:

<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>
...

처음에 나는 이것이 여전히 자바독과 소스를 연결하지 않을 것이라고 생각했습니다(예전에 -DownloadSources 옵션으로 시도했지만 실패했습니다).

하지만 놀랍게도 - POM 변형을 사용할 때 .classpath 파일이 소스와 javadoc을 첨부합니다!

Indigo(및 아마도 Helios)의 경우 위에서 언급한 확인란은 다음과 같습니다.

Window -> Preferences -> Maven

저도 비슷한 문제가 있었는데, 제게 가장 효과적인 해결책은 컴파일된 코드와 동일한 병에 소스를 포함시키는 것이었습니다(따라서 병의 주어진 디렉터리는 두 가지를 모두 포함할 것입니다).Foo.java그리고.Foo.class). Eclipse는 컴파일된 코드와 소스를 자동으로 연결하고 소스에서 JavaDoc을 자동으로 제공합니다.분명히, 그것은 당신이 인공물을 통제할 때만 도움이 됩니다.

Project Level 또는 User Properties Level에서 Properties를 설정한 후 Maven -> Update Project(Force Update)를 수행하십시오.소스를 다운로드합니다.

답에 약간의 추가, 프로젝트가 여전히 메이븐 프로젝트가 아니라면 이클립스 자바 소스 어태치터에 제공된 플러그인을 사용하여 jars의 소스 코드를 얻을 수 있습니다.

언급URL : https://stackoverflow.com/questions/310720/get-source-jar-files-attached-to-eclipse-for-maven-managed-dependencies

반응형