developer tip

Eclipse 프로젝트에서 Maven 종속성 누락

copycodes 2020. 8. 24. 18:54
반응형

Eclipse 프로젝트에서 Maven 종속성 누락


의존성을 해결하기 위해 maven으로 설정된 프로젝트가 있습니다. 일반적으로 잘 작동하지만 이제 새 PC에서 컴파일하고 실행하려고하는데 Eclipse에서 종속성이 누락되는 문제가 있습니다.

재미있는 것은 콘솔이나 이클립스에서 "mvn package"를 실행하면 잘 작동하고 필요한 모든 항아리를 포함하는 전쟁을 생성한다는 것입니다. Eclipse에서만 "빌드 경로가 불완전하여 프로젝트가 빌드되지 않았습니다. org.slf4j.Logger에 대한 클래스 파일을 찾을 수 없습니다 ..."라고 불평합니다. 프로젝트를 다른 컴퓨터 (프로젝트가 잘 작동하는 컴퓨터)와 비교하면 Eclipse의 "Maven 종속성"목록 아래에 누락 된 라이브러리가 상당히 많다는 것을 알 수 있습니다. 패키지 전쟁에 있지만 저장소 폴더에서도 찾을 수 있습니다.

따라서 jar-s는 Eclipse가 "Maven 종속성"아래에 모두 나열하지 않습니다. 어떡해?

컴퓨터는 Windows 7에서 64 비트 Java 및 Eclipse로 실행됩니다.


글쎄, 나는 여기에 게시 된 모든 것을 시도했지만 불행히도 내 경우에는 아무것도 작동하지 않습니다. 그래서 다른 조합을 시도해 보았습니다.

1) Eclipse 프로젝트의 루트에서 .classpath 파일을 엽니 다 .

2) 파일에 다음 항목을 삽입하십시오.

<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). 이제 Maven 종속성이 포함 된 라이브러리 탭에서 프로젝트의 Java 빌드 경로를 확인할 수 있습니다.여기에 이미지 설명 입력


문제 해결됨!

정확히 무엇을 해결했는지는 모르겠지만 Eclipse에서 4 가지 작업을 수행했습니다.

  • Window-> Preferences : Maven-> Installations : Global settings-> open file 및 hardcoded localRepository
  • 프로젝트-> 청소
  • 프로젝트를 마우스 오른쪽 버튼으로 클릭하십시오. Maven-> 종속성 업데이트
  • 프로젝트를 마우스 오른쪽 버튼으로 클릭하십시오. Maven-> 프로젝트 구성 업데이트

처음 두 번 후에 변경 사항이 없었기 때문에 업데이트 종속성이라고 생각합니다.


나는 또한 Eclipse를 처음 접했으며 모든 징후가 종속성이 성공적으로 다운로드되었음을 가리 키더라도 Eclipse가 import 문을 인식하지 못하는 유사한 문제를 겪었습니다.

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

mvn dependency:tree

거기에 패키지가 표시되지만 Eclipse가 인식하지 못하는 경우 (때때로) 터미널로 이동하여 프로젝트 폴더로 이동하여 다음을 입력하십시오.

mvn eclipse:clean 그때 mvn eclipse:eclipse

마지막으로 Eclipse에서 프로젝트 새로 고침

나는 이것이 왜 작동하는지 모르겠고 때로는 한 번 작동하지 않고 다시 작동합니다 ... 그래서 시도할만한 가치가 있습니다!


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

  1. 내 POM 파일을 삭제했습니다 (물론 백업).
  2. 프로젝트 컨텍스트 메뉴 > Maven > Maven Nature 비활성화 .
  3. 프로젝트를 삭제했습니다 (디스크의 내용은 제외).
  4. 가져 오기 > 일반 > 기존 프로젝트 로 다시 가져 왔습니다 .
  5. 프로젝트 컨텍스트 메뉴 > 구성 > 메이븐 프로젝트로 변환 ... .
  6. Maven 마법사의 기본값을 수락합니다.
  7. 백업 된 POM으로 POM을 덮어 씁니다. (이제 Maven Dependencies 폴더가 있습니다 ).
  8. 좋은 측정을 위해 Maven 업데이트 / 정리.

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


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

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

  • 프로젝트를 마우스 오른쪽 버튼으로 클릭하고 속성을 선택한 다음 Maven을 선택합니다.

  • 표시된 상자 "의 선택을 취소 작업 공간 프로젝트에서 해결 종속성을 "

  • 적용을 누른 다음 확인을 누르십시오.

  • 프로젝트를 다시 마우스 오른쪽 버튼으로 클릭하고 Maven-> Update Snapshots (또는 Update Dependencies)를 수행합니다.

그리고 프로젝트를 다시 빌드하면 오류가 사라집니다 (자동 빌드가 활성화 된 경우 자동으로).


글쎄, 나는 여기에 게시 된 모든 것을 시도했지만 불행히도 내 경우에는 아무것도 작동하지 않습니다. 그래서 다른 조합을 시도해 보았습니다.

1) Eclipse 프로젝트의 루트에서 .classpath 파일을 엽니 다 .

2) 파일에 다음 항목을 삽입하십시오.

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


누군가가 다른 모든 옵션을 시도했지만 여전히 멈춘 경우 프로젝트 폴더를 마우스 오른쪽 버튼으로 클릭하고 Maven 옵션으로 이동 한 다음 "종속성 추가"버튼을 클릭하십시오. 어떤 이유로 Eclipse는 처음 시도 할 pom.xml 에서 종속성을 수동으로 업데이트하지 않습니다 .

메뉴 선택 스크린 샷


비슷한 문제가있었습니다. Maven-> Update Project Configuration 작업 을 실행하여 해결했습니다.


그래서 나는이 파티에 약 4 ~ 5 년 늦었지만 우리 저장소에서 가져온 후에이 문제가 발생 했으며이 스레드의 다른 솔루션 중 어떤 것도 이러한 경고 / 오류를 제거하기 위해 제 경우에 해결되지 않았습니다.

이것은 나를 위해 일했습니다.

Eclipse에서 Window-> Preferences-> Maven (expand)-> Errors / Warnings로 이동합니다. 마지막 옵션은 "라이프 사이클 구성에 포함되지 않는 플러그인 실행"입니다.이 옵션의 드롭 다운 메뉴를 사용하고 "무시", 적용, 확인을 차례로 전환합니다. ( "Requires updates Maven Projects"프롬프트에서 OK라고 말함).

추가 정보 :

이것은 근본적인 문제를 반드시 "수정"하는 것은 아니며 일부에 의해 "모범 사례"로 인정되지 않을 수도 있지만 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에서 실행 중이었습니다. 내 프로젝트를 기존 Maven 프로젝트로 가져오고 기존 경고 / 오류에 대해 경고 할 때 확인을 선택했습니다 (나중에 처리하기 위해).

Eclipse-Maven 경고 "플러그인 실행이 적용되지 않음 ..."억제 / 제거

(미안합니다. 저는 디자이너는 아니지만 명확성을 위해 그림을 추가했습니다.)


나에게 문제는 maven이 myMavenFolder \ conf있는 settings.xml 파일을 찾을 수 없다는 것 입니다.

이 문제를 해결하기 위해 내가 한 일은 Eclipse에서 settings.xml 파일의 올바른 위치를 선택하는 것입니다 :
Window-> Preferences-> Maven-> User Settings

마지막으로 적용을 누르고 프로젝트를 업데이트하십시오.


내 경우에는 다음 단계가 작동했습니다.

1 Eclipse에서 원하는 프로젝트 Maven-> Disable Maven Nature를 마우스 오른쪽 버튼으로 클릭합니다.

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

3 프로젝트에서 한 번 더 마우스 오른쪽 버튼을 클릭 한 다음 구성-> Maven 프로젝트로 변환으로 이동합니다.


위의 솔루션 중 어느 것도 나를 위해 일하지 않았 으므로이 대답은 내 상황의 다른 사람을위한 것입니다. 나는 결국 문제를 스스로 발견하고 다른 해결책을 찾았습니다. pom.xml 파일에는 종속성을 래핑 한 dependencyManagement 태그가 포함되어 있으며 M2Eclipse는 이것이 존재할 때 Maven 종속성 폴더를 추가하지 않습니다. 그래서 저는이 태그를 제거하고 Ualter Jr.가 제공하는 솔루션을 수행했고 Eclipse는 즉시 누락 된 폴더를 추가했습니다!


내가 따라 간 단계는 다음과 같습니다.
1. Eclipse에서 Maven 프로젝트를 삭제했습니다.
2. 소스 폴더에서 src , pom 이외의 모든 파일 (.setting / .classpath / target)을 삭제했습니다 .
3. maven 프로젝트로 다시 가져옴
4. 다시 빌드하면 maven 종속성을 볼 수 있습니다.


Maven-> 프로젝트 구성 업데이트 (또는 Juno에서 "구성 업데이트 ...")를 수행 한 후 "중첩 된 경로"오류가 발생하면 빌드 경로가 잘못 구성된 것입니다.

프로젝트-> 빌드 경로-> 빌드 경로 구성을 마우스 오른쪽 단추로 클릭하십시오.

해당 레벨의 '/ src'및 디렉토리 만 포함되었는지 확인하십시오. 예를 들어 '/ src'와 '/ src / main / resources'가있는 경우 이는 잘못된 것입니다. 두 번째 리소스 ( '/ src / main / resources')는 첫 번째 ( '/ src') 아래에 "중첩"되어있어 Eclipse가 Maven 종속성을 보지 못하도록 리소스를 가져올 수 없습니다.


내 문제가 비슷하게 들리므로 토론에 추가하겠습니다. 기존 maven 프로젝트를 Eclipse로 가져 오는 것을 취소하여 업데이트가 허용되지 않고 작업 공간 구축을 제대로 완료하지 못했습니다.

이 문제를 해결하기 위해해야 ​​할 일은 선택하는 것이었고 Run As... -> Maven build...목표 아래에 입력 dependency:go-offline하고 실행했습니다.

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

이것은 마침내 소스 폴더를 생성하고 가져 오기를 마칠 수있게했습니다.


1) (당신의 maven 프로젝트)-> maven-> maven 설치를 마우스 오른쪽 버튼으로 클릭하여 오류를 해결할 수 있습니다.

성공적인 설치 후

2) (당신의 maven 프로젝트)-> maven-> 프로젝트 업데이트를 마우스 오른쪽 버튼으로 클릭하십시오. 그리고 maven의 모든 오류가 해결되었습니다!


나에게는 다음과 같이 .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>

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


이것이 내가 그것을 해결 한 방법입니다

  • Window-> Preferences : Maven-> User Settings (결과 창에서 "open file"을 클릭하거나 메모장과 같은 외부 텍스트 편집기로 settings.xml을 편집하십시오) localRepository (이 창에 표시됨)가 올바른지 확인하십시오. 파일에 오타가 있습니다.
  • settings.xml을 수정 한 후 동일한 Preferences-> Maven-> User Settings 화면에있는 Update Settings를 클릭합니다.

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


I had a similar issue and have tried all the answers in this post. The closest I had come to resolving this issue was by combining the Joseph Lust and Paul Crease solutions. I added the backed up pom.xml file after deleting and reimporting the project, and nothing showed up until I deleted the dependency management tag in the pom.xml and magically the dependencies folder was there.

However, it broke up the child POM's since they need the parent pom.xml dependency management to function, and as a result my MVN was not functioning properly on the project either from Eclipse or the command line, giving a broken pom.xml error.

The last solution if all fails, is to manually import the .jar files needed by your project. Right click the project Properties -> Java Build Path -> Libraries and Add external Jar.

If your MVN is working correctly from the command line and you have done a successful build on the project, you will have all the repos needed in your .m2/repository folder. Add all the external jars mentioned in your dependencies tag of pom.xml and you will see a referenced library section in your Eclipse, with all the pesky red errors gone.

This is not the optimal solution, but it will let you work in Eclipse without any errors of missing dependencies, and also allow you to build the Maven project both from Eclipse and command line.


This same problem happened to me, and it was because there an error in downloading a jar due to repo issues, indicated by a red flag in the pom.xml.

I added another repository so the red flag in the pom.xml disappeared and Eclipse then loaded the pom again, resolved its issue and listed the maven dependencies in Project Explorer. it sounds simple and obvious to resolve visible issues, but since Eclipse was quite happy to run maven, and build successfully, it was not obvious that the red flag and repo issue were at the root of its unwillingness to parse the pom and list the maven dependencies


mvn eclipse:clean

then from eclipse: "Maven Update Project" does the trick!


update the .classpath to below will work every time.

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

My answer is similar to that of @JerylCook: find another .classpath file in a working Maven project, edit your bad ones as that good working ones. The key is to add

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

in every <classpathentry> of type con and src. Don't forget to change <classpathentry .... /> to <classpathentry ...>xxx</classpathentry>.

At last, update the maven project and reinstall/rebuild in maven.


Maven Dependencies: What solved it for me in Eclipse? I added the dependency in the "pom" file. I did a build, but could not see the Maven Dependency in the Eclipse. Next Step: Closed the project. Then Reopened the project. I could see the Maven dependencies.


It's so amazing that this one problem has so many different causes and possible solutions. I found yet a different solution that worked for me.

Well, it's not so much a solution but a discovery: I can see the Maven Dependencies node in the Package Explorer, which is the default for the Java perspective, but I can not see it in the Java EE perspective, which uses the Project Explorer by default. Both of those explorers look very similar at quick glance, so you may expect to see the Maven Dependencies in both.

As I was trying to figure this out, I hadn't realized that difference, so it wasn't really a problem for me in the end after all.


the whole project looked weird in eclipse, maven dependencies folder were missing, it showed some types as unknown, but I was able to build it successfully in maven. What fixed my issue was adding gen folder to source path on project build path.

Probably this is similar to this Android /FBReaderJ/gen already exists but is not a source folder. Convert to a source folder or rename it


In Eclipse STS if "Maven Dependencies" disappears it, you have to check and fix your pom.xml. I did this (twice) and I resolved it. It was not a dependencies issue but a String generated and moved in a position random in my pom.xml.


For the following steps worked in my case:

1 On eclipse, right click on the desired project Maven -> Disable Maven Nature

2 Right click again then go to Properties. Delete every evidence of external Maven dependency leaving only JRE System Library.

3 Right click one more time on the project then go to Configure -> Convert to Maven Project

it worked for me also


위의 모든 것이 저와 함께 작동하지 않았습니다. 수정 사항은 .m2 아래의 저장소 폴더를 삭제 한 다음 eclipse에서 maven 업데이트를 수행하는 것입니다.


너무 많은 답변. 예상대로 이것이 작동하지 않는 이유는 여러 가지가있을 수 있습니다. 제 경우에는 내 종속성에 대한-태그도 인식하지 못했습니다. 안면 손바닥

예:

...
<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-log4j12</artifactId>
            <version>${org.slf4j.version}</version>
        </dependency>
    </dependencies>
</dependencyManagement>

이것은 원하는 버전의이 프로젝트와 모든 하위 프로젝트에 대한 종속성을 정의 할뿐입니다! 이것은 예를 들어 master-POM에서 어떻게 보이는지입니다. 이 현재 프로젝트에서 lib를 실제로 사용하려면 다음과 같이 종속성을 추가해야합니다.

...
<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-log4j12</artifactId>
            <version>${org.slf4j.version}</version>
        </dependency>
    </dependencies>
</dependencyManagement>

<dependencies>
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-log4j12</artifactId>
    </dependency>
</dependencies>

이제이 현재 프로젝트에서 lib를 제공합니다.

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

반응형