programing

이클립스 프로젝트에서 메이븐 종속성 누락

i4 2023. 4. 26. 22:57
반응형

이클립스 프로젝트에서 메이븐 종속성 누락

우리는 의존성을 해결하기 위해 메이븐과 함께 프로젝트를 시작했습니다.보통은 잘 작동하지만 지금은 새 PC에서 컴파일하여 실행하려고 하는데 이클립스에서 종속성이 누락되어 문제가 있습니다.

재미있는 것은 콘솔이나 일식에서 "mvn 패키지"를 실행하면 잘 작동하고 필요한 모든 병이 들어 있는 전쟁까지 발생한다는 것입니다.Eclipse만 "프로젝트의 빌드 경로가 불완전하기 때문에 프로젝트가 빌드되지 않았습니다.org.slf4j에 대한 클래스 파일을 찾을 수 없습니다.Logger..." 프로젝트를 다른 컴퓨터(프로젝트가 제대로 작동하는 곳)와 비교하면 Eclipse의 "Maven dependencies" 목록에 누락된 라이브러리가 꽤 많다는 것을 알 수 있습니다.패키지 전쟁 중이고 저장소 폴더에서도 찾을 수 있습니다.

그래서, 단지 이클립스가 모든 것을 "메이븐 의존성" 아래에 나열하지 않을 것입니다.어떻게 해야 합니까?

컴퓨터가 64비트 Java & Eclipse가 설치된 Windows 7에서 실행되고 있습니다.

음, 여기에 게시된 모든 것을 시도해 봤는데, 안타깝게도 제 경우에는 아무 것도 작동하지 않습니다.그래서 여러가지 조합을 시도해 보았습니다. 제 문제를 해결해준 것이죠.

이클립스 프로젝트의 루트에 있는 .classpath 파일을 엽니다.

다음 항목을 파일에 삽입합니다.

<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
        <attributes>
            <attribute name="maven.pomderived" value="true"/>
            <attribute name="org.eclipse.jst.component.nondependency" value=""/>
        </attributes>
</classpathentry> 

그런 다음 Eclipse에서 프로젝트를 다시 빌드합니다(Project->Clean-Build).includeds: "Maven Dependencies"에서 할 수 .여기에 이미지 설명 입력

문제가 해결되었습니다!

정확히 무엇이 그것을 해결했는지는 모르지만, 저는 이클립스에서 네 가지 일을 했습니다.

  • 창 ->환경설정: 메이븐 -> 설치: 글로벌 설정 -> 파일 및 하드코딩된 로컬 리포지토리 열기
  • 프로젝트->청소
  • 프로젝트 마우스 오른쪽 버튼 클릭: 메이븐->종속성 업데이트
  • 프로젝트 우클릭: 메이븐->프로젝트 구성 업데이트

처음 두 개 직후부터 업데이트 종속성이 변경되지 않은 것 같습니다.

저도 Eclipse를 처음 접하는 사람인데, 이와 유사한 문제가 발생하여 Eclipse가 종속성이 성공적으로 다운로드되었음을 나타내는 모든 징후가 있음에도 불구하고 Import 문을 인식하지 못합니다.

명령줄로 이동하여 종속성 파일이 실제로 다운로드되었는지 확인해야 합니다.

mvn dependency:tree

만약 당신이 거기에 당신의 패키지를 본다면, 그러나 Eclipse가 그것을 인정하지 않는다면, 나에게 효과가 있는 것은 (때때로) 터미널로 가서 프로젝트 폴더에 cd를 넣고 입력하는 것입니다.

mvn eclipse:clean그리고나서mvn eclipse:eclipse

마침내 이클립스에서 프로젝트 새로 고침

이게 왜 효과가 있는지 모르겠어요. 그리고 가끔은 한 번도 효과가 없고, 다시 하면 효과가 있어요.시도할 가치가 있습니다!

다른 프로젝트에서 생성된 종속성 때문에 이 문제가 발생했습니다.다운로드한 타사 종속성은 빌드 경로에 정상적으로 표시되지만 내가 만든 라이브러리는 표시되지 않습니다.

SOLUTION:제대로 구축되지 않은 프로젝트에서

  • 프로젝트를 마우스 오른쪽 단추로 클릭하고 속성, 메이븐을 차례로 선택합니다.

  • "작업영역 프로젝트에서 종속성 확인" 상자의 선택을 취소합니다.

  • 적용을 누른 다음 확인을 누릅니다.

  • 프로젝트를 다시 마우스 오른쪽 버튼으로 클릭하고 메이븐->스냅샷 업데이트(또는 종속성 업데이트)를 수행합니다.

또한 프로젝트를 다시 빌드할 때 오류가 사라집니다(자동 빌드를 사용하도록 설정한 경우 자동으로).

내 프로젝트가 막 망쳤어요.Eclipse Indigo x64(J2EE 3.7.3)에서 수정한 방법은 다음과 같습니다.

  1. 내 POM 파일을 삭제했습니다(물론 백업).
  2. Project Context Men > Maven > Maven Nature 비활성화
  3. 프로젝트를 삭제했지만 디스크의 내용은 삭제하지 않았습니다.
  4. 수입 > 일반 > 기존 프로젝트로 재수입되었습니다.
  5. 프로젝트 컨텍스트 메뉴 > 구성 > 메이븐 프로젝트로 변환....
  6. 메이븐 마법사의 기본값을 사용합니다.
  7. 백업된 POM으로 POM을 덮어씁니다. (이제 Maven Dependencies 폴더가 있습니다.)
  8. 올바른 측정을 위해 메이븐 업데이트/청소를 수행합니다.

누군가에게 도움이 되길 바랍니다.:)

음, 여기에 게시된 모든 것을 시도해 봤는데, 안타깝게도 제 경우에는 아무 것도 작동하지 않습니다.그래서 여러가지 조합을 시도해 보았습니다. 제 문제를 해결해준 것이죠.

이클립스 프로젝트의 루트에 있는 .classpath 파일을 엽니다.

다음 항목을 파일에 삽입합니다.

<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
        <attributes>
            <attribute name="maven.pomderived" value="true"/>
            <attribute name="org.eclipse.jst.component.nondependency" value=""/>
        </attributes>
</classpathentry> 

그런 다음 Eclipse에서 프로젝트를 다시 빌드합니다(Project->Clean-Build).

나에게 문제는 mavenFolder\conf에 있는 settings.xml 파일을 찾을 수 없다는 것이었습니다.

eclipse에서settings.입니다.
-> Preferences -> > Settings -> 경정설 -> 사자설 ->

마지막으로 apply를 누르고 프로젝트를 업데이트합니다.

다른 모든 옵션을 시도했지만 여전히 사용자가 정체되어 있는 경우 프로젝트 폴더를 마우스 오른쪽 버튼으로 클릭하고 메이븐 옵션으로 이동한 후 "의존성 추가" 버튼을 클릭합니다.어떤 이유에서인지 이클립스는 처음에 pom.xml에서 수동으로 종속성을 업데이트하지 않습니다.

메뉴 선택의 스크린샷

저도 비슷한 문제가 있었습니다.메이븐->프로젝트 구성 업데이트 작업을 실행하여 해결했습니다.

그래서 저는 이 파티에 4~5년 정도 늦었지만, 저희 레포에서 철수한 후에 이 문제가 발생했습니다. 이 스레드의 다른 솔루션은 이러한 경고/오류를 제거할 수 없었습니다.

이것은 저에게 효과가 있었습니다.

이클립스에서 창 -> 기본 설정 -> 메이븐(확장) -> 오류/경고로 이동합니다.마지막 옵션은 "플러그인 실행이 라이프사이클 구성에 포함되지 않음"입니다. 이 옵션에 대한 드롭다운 메뉴를 사용하고 "무시", "적용", "확인"을 차례로 전환합니다. ("Maven Projects 업데이트 필요" 프롬프트에서 "확인"이라고 말합니다.)

추가 정보:

이는 근본적인 문제를 "해결"하지 않을 수도 있고 일부에서는 "모범 사례"로 간주되지 않을 수도 있지만, 이러한 경고가 Eclipse에 나타나지 않도록 제거/억제하고 적어도 앞으로 나아갈 수 있도록 지원합니다.특히 - Spring Dashboard & Spring IDE Core(3.6.3)가 설치된 Eclipse Luna Service Release 1(4.4.1)과 m2e(1.5)를 사용하여 Arch Linux 및 OpenJDK 1.7에서 실행하고 있었습니다. 프로젝트를 기존 메이븐 프로젝트로 가져와서 기존 경고/오류에 대한 경고가 있을 때 확인을 선택했습니다.

플러그인 실행 억제/제거가 적용되지 않습니다.

(죄송하지만, 저는 디자이너가 아닙니다. 명확하게 하기 위해 사진을 추가했습니다.)

제 경우 다음 단계가 작동했습니다.

1 이클립스에서 원하는 프로젝트 메이븐을 마우스 오른쪽 버튼으로 클릭 -> 메이븐 네이처 비활성화

2 마우스 오른쪽 단추를 다시 클릭한 다음 속성으로 이동합니다.외부 Maven 종속성의 모든 증거를 삭제하고 JRE 시스템 라이브러리만 남깁니다.

3 프로젝트에서 마우스 오른쪽 단추를 한 번 더 누른 후 구성 -> 메이븐 프로젝트로 변환

위의 어떤 해결책도 나에게 효과가 없었기 때문에, 이 대답은 나의 상황에 있는 다른 사람을 위한 것입니다.저는 결국 문제를 발견했고, 다른 해결책을 찾았습니다.pom.xml 파일에는 종속성을 묶은 종속성 관리 태그가 포함되어 있으며, M2Eclipse는 Maven Dependencies 폴더가 있을 때 추가하지 않습니다.그래서 저는 이 태그를 제거한 다음, Ualter Jr.가 제안한 솔루션을 실행했고, Eclipse는 즉시 누락된 폴더를 추가했습니다!

다음은 제가 수행한 단계입니다.
이클립스에서 메이븐 프로젝트를 삭제했습니다.
src와 pom을 제외한 모든 파일(.setting/.classpath/target)을 소스 폴더에서 삭제했습니다.
로 .
다시 빌드하면 메이븐 의존성을 볼 수 있을 것입니다.

이렇게 해결했습니다.

  • 창->환경설정: 메이븐->사용자 설정(결과 창에서 "열린 파일"을 클릭하거나 메모장과 같은 외부 텍스트 편집기로 settings.xml 편집)이 올바른지 확인합니다(이 창에 표시됨).파일에 오타가 있었습니다.
  • settings.xml을 수정했으면 Update Settings를 클릭합니다. Update Settings는 동일한 Preferences->Maven->User Settings 화면에 나타납니다.

이제 다시 빌드하면 최신 JAR이 올바른 위치에 설치됩니다.

은 @합니다: @JerylCook을 . @JerylCook 파일: 다른답찾기다니유합사..classpath작업 중인 메이븐 프로젝트에 파일을 작성하고, 당신의 나쁜 것을 작업 중인 것으로 편집합니다.핵심은 추가하는 것입니다.

<attributes>
    <attribute name="maven.pomderived" value="true"/>
</attributes>

어느 곳에나<classpathentry>con그리고.src 변경하세요<classpathentry .... /><classpathentry ...>xxx</classpathentry>.

마지막으로 Maven 프로젝트를 업데이트하고 Maven에서 다시 설치/재구축합니다.

Pom에 오류가 있을 때 이 오류가 발생했습니다.

  1. 콘솔에서 mvn eclipse:eclipse 명령을 실행하여 pom이 구문 분석 가능한지 확인합니다.
  2. 구문 분석할 수 없는 경우 오류를 검색합니다.

Maven -> Update Project Configuration(또는 Juno의 "Update Configuration...)"을 수행한 후 "내포 경로" 오류가 발생한 경우.그러면 빌드 경로가 잘못 구성됩니다.

프로젝트 우클릭 -> 빌드 경로 -> 빌드 경로 구성

'/src' 및 해당 수준의 디렉토리만 포함되어야 합니다.예: '/src' 및 '/src/main/resources'가 있는 경우 이는 올바르지 않습니다.두 번째 리소스('/src/main/resources')는 첫 번째 리소스('/src') 아래에 "내포"되어 있으며, 이로 인해 이클립스에서 메이븐 종속성을 볼 수 없으므로 리소스를 가져올 수 없습니다.

제 문제가 비슷한 것 같으니 토론에 추가하겠습니다.기존 메이븐 프로젝트를 이클립스로 가져오기를 취소하여 업데이트가 허용되지 않고 Work Space 빌딩을 제대로 완료하지 못했습니다.

그것을 해결하기 위해 내가 해야 할 일은 선택되었습니다.Run As... -> Maven build...그리고 내가 입력한 목표 아래.dependency:go-offline그리고 그것을 실행했습니다.

그런 다음 프로젝트를 마우스 오른쪽 단추로 클릭하고 선택했습니다.Maven -> Update Project...특정 프로젝트를 업데이트했습니다.

이렇게 하면 마침내 원본 폴더를 만들고 가져오기를 완료할 수 있습니다.

1) 오류를 해결할 수 있었습니다. (당신의 메이븐 프로젝트) -> 메이븐 -> 메이븐 설치

설치 성공 후

마우스 오른쪽 버튼 클릭 (당신의 메이븐 프로젝트) -> 메이븐 -> 업데이트 프로젝트.그리고 메이븐의 모든 실수는 해결되었습니다!

다음과 같이 .project 파일에 buildCommand(org.eclipse.m2e.core.maven2Builder)와 nature(org.eclipse.m2e.core.maven2Nature)를 추가하면 충분했습니다.

<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
    <name>iText</name>
    <comment></comment>
    <projects>
    </projects>
    <buildSpec>
        <buildCommand>
            <name>org.eclipse.jdt.core.javabuilder</name>
            <arguments>
            </arguments>
        </buildCommand>
        <buildCommand>
            <name>org.eclipse.m2e.core.maven2Builder</name>
            <arguments>
            </arguments>
        </buildCommand>
    </buildSpec>
    <natures>
        <nature>org.eclipse.jdt.core.javanature</nature>
        <nature>org.eclipse.m2e.core.maven2Nature</nature>
    </natures>
</projectDescription>

그리고 나는.여기에 이미지 설명 입력

저도 비슷한 문제가 있었고 이 게시물의 모든 답변을 시도했습니다.제가 이 문제를 해결하기 위해 가장 가까이 접근한 것은 조셉 러스트와 폴 크리즈 솔루션을 결합한 것입니다.프로젝트를 삭제하고 다시 가져온 후 백업된 pom.xml 파일을 추가했는데 pom.xml에서 종속성 관리 태그를 삭제하고 마법처럼 종속성 폴더가 있을 때까지 아무것도 나타나지 않았습니다.

그러나 부모 pom.xml 종속성 관리가 필요하기 때문에 자식 POM을 분리했고 그 결과 내 MVN이 Eclipse 또는 명령줄에서 프로젝트에서 제대로 작동하지 않아 pom.xml 오류가 발생했습니다.

모두 실패할 경우 마지막 해결 방법은 프로젝트에 필요한 .jar 파일을 수동으로 가져오는 것입니다.프로젝트 속성 -> Java 빌드 경로 -> 라이브러리 및 외부 jar 추가를 마우스 오른쪽 버튼으로 클릭합니다.

MVN이 명령줄에서 올바르게 작동하고 프로젝트를 성공적으로 빌드한 경우 .m2/repository 폴더에 필요한 모든 리포지토리가 있습니다.pom.xml의 종속성 태그에 언급된 모든 외부 병을 추가하면 모든 성가신 빨간색 오류가 제거된 이클립스에서 참조된 라이브러리 섹션을 볼 수 있습니다.

이 솔루션은 최적의 솔루션은 아니지만 종속성 누락 오류 없이 이클립스에서 작업할 수 있으며 이클립스와 명령줄에서 모두 메이븐 프로젝트를 빌드할 수 있습니다.

했는데, 문제로 입니다. repo 에를▁the▁▁this▁in▁red다▁due,▁there니o때▁same▁by▁in입▁and▁happened▁jar▁a▁to▁because발▁it▁problem,문▁an▁error▁download기했생와오▁was▁indicated▁to▁me▁issues▁rep가류중이.pom.xml.

다른 리포지토리를 추가하여 빨간색 플래그가 표시되도록 했습니다.pom.xml이클립스는 사라졌고 이클립스는 폼을 다시 로드하고 문제를 해결했으며 프로젝트 탐색기에 메이븐 종속성을 나열했습니다.눈에 보이는 문제를 해결하는 것은 간단하고 명백하게 들리지만, 이클립스가 메이븐을 실행하고 성공적으로 구축하는 것에 꽤 행복했기 때문에, 레드 플래그와 레포 이슈가 폼을 구문 분석하고 메이븐 종속성을 나열하는 것을 꺼리는 근본에 있다는 것은 분명하지 않았습니다.

mvn eclipse:clean

이클립스부터: "메이븐 업데이트 프로젝트"가 효과를 발휘합니다!

.classpath를 아래로 업데이트하면 항상 작동합니다.

<?xml version="1.0" encoding="UTF-8"?>
<classpath>
    <classpathentry kind="src" output="target/classes" path="src/main/java">
        <attributes>
            <attribute name="optional" value="true"/>
            <attribute name="maven.pomderived" value="true"/>
        </attributes>
    </classpathentry>
    <classpathentry kind="src" output="target/test-classes" path="src/test/java">
        <attributes>
            <attribute name="optional" value="true"/>
            <attribute name="maven.pomderived" value="true"/>
        </attributes>
    </classpathentry>
    <classpathentry excluding="**" kind="src" output="target/test-classes" path="src/test/resources">
        <attributes>
            <attribute name="maven.pomderived" value="true"/>
        </attributes>
    </classpathentry>
    <classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources">
        <attributes>
            <attribute name="maven.pomderived" value="true"/>
        </attributes>
    </classpathentry>
    <classpathentry excluding="WEB-INF/" kind="src" path="src/main/webapp"/>
    <classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
        <attributes>
            <attribute name="maven.pomderived" value="true"/>
            <attribute name="org.eclipse.jst.component.dependency" value="/WEB-INF/lib"/>
        </attributes>
    </classpathentry>
    <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
    <classpathentry kind="output" path="target/classes"/>
</classpath>

메이븐 종속성:무엇이 이클립스에서 해결되었습니까?저는 "pom" 파일에 종속성을 추가했습니다.빌드를 했지만 이클립스에서 메이븐 종속성을 볼 수 없었습니다.다음 단계: 프로젝트를 닫습니다.그런 다음 프로젝트를 다시 시작했습니다.메이븐의 종속성을 볼 수 있었습니다.

최근에 메이븐 프로젝트를 만든 후에도 비슷한 문제가 발생했는데 메이븐 종속성 폴더가 프로젝트 구조에 나타나지 않았습니다. 오른쪽 단추로 후와 같은 하십시오.junit이제 Maven 종속성이 프로젝트 구조에 나타납니다.

<dependencies>
 <dependency>
 <groupId>org.springframework</groupId>
 <artifactId>spring-context</artifactId>
 <version>4.2.9.RELEASE</version>
 <scope>runtime</scope>
 </dependency>
</dependencies>

여기에 이미지 설명 입력프로젝트 폴더를 마우스 오른쪽 버튼으로 클릭하고 maven > Update project > 프로젝트 선택 > OK에서 pom.xml 아래의 모든 종속성을 maven Dependencies라는 폴더에 자동으로 다운로드합니다.

  1. 이클립스 프로젝트의 루트에 있는 .classpath 파일을 엽니다.

이 하나의 문제가 이렇게 다양한 원인과 가능한 해결책을 가지고 있다는 것은 정말 놀라운 일입니다.저는 저에게 효과적인 다른 해결책을 찾았습니다.

이것은 해결책이라기보다는 발견입니다.패키지 탐색기에서 Java 관점의 기본값인 Maven Dependencies 노드를 볼 수 있지만 프로젝트 탐색기를 기본적으로 사용하는 Java EE 관점에서는 볼 수 없습니다.두 탐험가 모두 한눈에 보기에 매우 비슷해 보이기 때문에 메이븐 종속성을 둘 다 볼 수 있을 것입니다.

제가 이것을 알아내려고 노력할 때, 저는 그 차이를 깨닫지 못했기 때문에 결국 그것은 저에게 실제로 문제가 되지 않았습니다.

전체 프로젝트가 일식에서 이상하게 보였고, 메이븐 종속성 폴더가 누락되었으며, 일부 유형은 알 수 없는 것으로 표시되었지만 메이븐에서 성공적으로 빌드할 수 있었습니다.문제를 해결한 것은 프로젝트 빌드 경로의 소스 경로에 gen 폴더를 추가하는 것이었습니다.

아마도 이 Android/FBreaderJ/gen과 유사하지만 소스 폴더는 아닙니다. 원본 폴더로 변환하거나 이름 바꾸기

언급URL : https://stackoverflow.com/questions/4262186/missing-maven-dependencies-in-eclipse-project

반응형