IntelliJ IDEA에서 Maven 종속성 가져 오기


208

IntelliJ IDEA 11에 대해 약간의 질문이 있습니다. 방금 Subversion에서 프로젝트를 가져 왔습니다. 그러나 maven 라이브러리 종속성에 문제가있어 모든 maven 종속성을 자동으로 포함 할 수는 없습니다 .IDEA는 해당 클래스를 열 때만 종속성 오류를 표시합니다.

여기에 이미지 설명을 입력하십시오

그래서 모든 종속성이 자동으로 추가되기를 원합니다. 가능합니까? 또는 maven 종속성을 식별하고 추가하기 위해 모든 클래스 파일을 거쳐야합니까?!

업데이트 : 몇 가지 수정을 한 후 어떤 방식으로 문제를 해결하는 방법을 찾았습니다. 그게 내가 한 일 : 여기에 이미지 설명을 입력하십시오

그러나 논리적으로 그것은 새로운 의존성을 미리 포함하지 않을 것이라고 생각합니까?! ... intelliJ-classpath에 대한 자동 내보내기 의존성에 대한 설정 영역이 있습니까?!


9
그것은 모든 의존성을 다운로드하지만 그것들을 모두 classpath에 추가하지 않는 것 같습니다 ...
Zaur Guliyev

3
또 다른 문제는 intelliJ가 Java 파일을 열 때만 빨간색 밑줄이 표시된 오류를 표시한다는 것입니다.
Zaur Guliyev

4
이 빨간 선을 얻는 한 가지 예는 분류 자와의 SNAPSHOT 종속성이 있고 분류자가없는 새로운 버전의 종속성이 존재하는 경우입니다. 이것은 Maven에서 완벽하게 합법적이지만 IntelliJ는 로컬 Maven 리포지토리에서 실제 파일의 경로를 찾으려고 혼동합니다.
RCross

4
참고로 이것은 여전히 ​​15.0.2에서 발생할 수 있습니다. 방금 나에게 일어났다. 내 .iml 파일과 .idea 폴더를 날려 버리고 다시 가져 왔습니다. 엄청나게 실망한 b / c 나는 2 시간 동안 싸웠고, 정교하게 제작 된 모든 설정을 잃어 버렸다.
Kevin Pauli

3
@KevinPauli는이를 위해 IDEA 프로젝트 파일을 제거 할 필요가 없으며, 수동 재 가져 오기를 위해 "Maven Projects"탭의 "Maven Projects를 모두 다시 가져 오기"만하면됩니다.
Zaur Guliyev

답변:


282

POM을 준수하고 모든 종속성을 사용할 수있는 한 IntelliJ는 모든 종속성을 프로젝트의 클래스 경로에 자동으로 다운로드하여 추가해야합니다.

Maven 프로젝트를 IntelliJ로 가져올 때 일반적으로 Maven 프로젝트에 대한 자동 가져 오기 를 구성 할 것인지 묻는 정보 상자가 나타납니다 . 즉, POM을 변경하면 해당 변경 사항이 자동으로로드됩니다.

파일> 설정> Maven> 가져 오기로 이동하여 "Maven 프로젝트를 자동으로 가져 오기"라는 확인란이 있습니다.

그래도 문제가 해결되지 않으면 완전히 정리하고 다시 시작하는 것이 좋습니다.

  • 프로젝트 창 (및 IntelliJ)을 닫고 모든 *.iml파일과 모든 .idea폴더를 제거하십시오 (모듈 당 하나씩 있어야 함)
  • mvn clean install명령 줄에서 실행
  • 프로젝트를 IntelliJ로 다시 가져오고 자동 가져 오기를 활성화하라는 메시지가 표시 될 때주의하십시오

IntelliJ 2016 업데이트 :

가져 오기 메이븐 프로젝트가 자동으로 이동되었습니다 설정을 , 실행, 배포> 빌드 도구> 메이븐> 가져 오기 구축 하여 인 IntelliJ 환경 설정에서입니다.


솔루션이 종속성을 내 보낸 것으로 표시 했습니까? 이상 하네! IntelliJ와 Maven을 많이 사용하며 내 프로젝트 (일부 프로젝트는 다중 프로젝트 임)에 내보내기 기능이 활성화되어 있지 않습니다. Community Edition 또는 Ultimate입니까?
Alonso Dominguez

1
Ultimate Edition이지만 내가 가져온 프로젝트는 Eclipse에서 빌드되었으므로 .classpath는 활성화되었지만 IntelliJ는 .iml을 사용합니다. 따라서이 프로젝트에 .iml이 없으면 처음으로 이러한 라이브러리를 포함하는 것이 논리적이라고 생각합니다. 전에 파일 ..?!
Zaur Guliyev

1
오, 좋아-Eclipse 프로젝트가 아닌 Maven 프로젝트로 가져 오려고 했습니까? Maven 프로젝트로 작업 할 때 IDE 관련 파일을 소스 리포지토리로 체크인하지 않는 데 익숙합니다. Maven 프로젝트 인 경우 Maven 규칙
Alonso Dominguez

2
환경 설정 / 설정에서 자동 가져 오기를 활성화 할 수 있습니다. 환경 설정 / 설정을 열고 "자동으로 maven 프로젝트 가져 오기"를 검색하십시오. 이 빌드, 실행, 배포> 빌드 도구 아래> 메이븐> 가져 오기
세예드 잘랄 호세 이니

2
@JustinBlank는 이것이 2012 년의 답변이라는 점을 감안할 때 놀라지 않습니다. 설정은 여전히 ​​다른 곳으로 옮겨졌습니다 (답변이 업데이트되었습니다).
Alonso Dominguez

66

IntelliJ 14 이전 수정

파일 [메뉴]-> 설정-> maven- > 가져 오기 및 "maven3을 사용하여 프로젝트 가져 오기" 선택 해제

참고 : http://youtrack.jetbrains.com/issue/IDEA-98425 (다른 아이디어가있을 수도 있음)

IntelliJ 15 이상 수정

이번에는 IntelliJ 15를 사용하여 다시이 문제를 해결했습니다. 더 이상 "maven3을 사용하여 가져 오기"옵션을 사용할 수 없습니다. 원인은 때때로 IntelliJ가 "maven 종속성을 올바르게 구문 분석하지 않았으며"하나를 올바르게 구문 분석 할 수없는 경우 모든 것을 포기하는 입니다. maven 프로젝트 도구 창 (보기 메뉴-> 도구 창-> Maven 프로젝트)을 열어서 이런 경우인지 알 수 있습니다. 그런 다음 maven 프로젝트 중 하나와 그 종속성을 확장하십시오. 종속성이 모두 빨간색으로 강조 표시되어 있으면 "휴스턴에 문제가 있습니다." 여기에 이미지 설명을 입력하십시오

실제로 프로젝트 이름 자체를 마우스로 가리키면 실제 실패를 볼 수 있습니다 .

여기에 이미지 설명을 입력하십시오

제 경우에는 "문제 : XXX에 사용할 수있는 버전이 없습니다"또는 "아티팩트 org.xy.z에 대한 설명자를 읽지 못했습니다"라는 메시지가 표시됩니다. https://youtrack.jetbrains.com/issue/IDEA-128846https : // youtrack.jetbrains.com/issue/IDEA-152555

이 경우 관련 pom 파일이없는 jar (maven nexus repo 및 로컬 저장소)를 다루는 것 같습니다. 이것이 또한 당신의 문제라면, "현재 해결 방법 : 만약 당신이 실제로 자신의 코드에서 해당 jar의 클래스를 사용할 필요가 없다면 (예를 들어, 전 이적 maven 의존성 만 해당) 실제로 pom에서 주석 처리하여 벗어날 수 있습니다. (일시적으로) maven 프로젝트를 다시로드 한 다음 주석 처리를 제거하십시오. "

도움이 될 수있는 또 다른 방법은 번들 3.0.5보다 "최신 버전"의 maven을 사용하는 것입니다. 이것을 기본값으로 사용하도록 설정하려면 모든 intellij 창을 닫은 다음 환경 설정-> 빌드, 실행 및 배포-> 빌드 도구-> maven을 열고 maven 홈 디렉토리를 변경하십시오. 프로젝트를 조정하면 맨 위에 표시됩니다. 조정 후 "가져 오기"를하는 한 특정 프로젝트에 맞게 조정할 수도 있습니다.

캐시 지우기

intellij 캐시 폴더 삭제 (Windows : HOMEPATH /. {IntellijIdea, IdeaC} XXX linux ~ / .IdeaIC15) 및 / 또는 IntelliJ 자체 제거 및 재설치 파일 [메뉴]->로 이동하여 수행 할 수도 있습니다 Invalidate Caches / Restart.... 를 클릭하십시오 invalidate and restart. 이렇게하면 전체 프로젝트의 색인을 다시 작성하고 IntelliJ의 많은 추적하기 어려운 문제를 해결할 수 있습니다.


2
이상하게도 거의 모든 다른 게시물은이 문제를 해결하기 위해 "Maven3을 사용하여 프로젝트 가져 오기"옵션을 확인하여 실제로 확인하지 않으면 문제가 해결됩니다. 왜? 모르겠어요 감사!
janhink

3
v14 궁극에서 나는 외부 maven을 선택했고 모든 것이 다시 작동했습니다.
AlikElzin-kilaka

@ AlikElzin-kilaka maven 홈 디렉토리를 외부 maven 홈으로 변경하면 많은 도움이됩니다. IDEA를 v14 Ultimate로 업데이트 한 후 "No tomcat6 plugin found"로 인해 IDEA에서 프로젝트를 시작할 수 없지만 mvn 명령을 사용하여 프로젝트를 시작할 수 있으며 maven 홈 디렉토리를 외부 디렉토리로 변경하면 해결되었습니다
JerseyGood

IntelliJ 2016.2.1에서 Maven home directory스택을 사용하는 버전으로 자동 가져 오기를 비활성화하면 (3.3.9) 문제가 해결되었습니다.
Wheeler

1
변경 maven home directory에서 Bundle (Maven 3)내 받는다는가 설치된 경로에 .../maven/3.6.1/libexec나를 위해 일한
마르셀 자비에르

37

프로젝트를 가져올 때 pom.xml프로젝트 디렉토리 대신을 선택하십시오 . 작동해야합니다.


1
때때로 Maven 프로젝트 창에서 "모든 maven 프로젝트 가져 오기"옵션을 클릭하십시오
vikramvi

1
아마도 이것은 가장 우아하고, 깨끗하고, 솔루션입니다 (그리고 어색하게 IntelliJ 그 추측에 도움이되지 않는 약간의)
matanster을

IntelliJ Community Edition 2019.3.4와 함께 나를 위해 일하고 있습니다. 그러한 쉬운 해결책에 감사드립니다. :)
비대칭

22

IntelliJ IDEA의 Maven Projects 패널에서 프로젝트를 다시 가져 오십시오. pom.xml자동으로 정의 된 모든 종속성을 다운로드하고 구성해야합니다 .

어떤 이유로 IDEA에서 다운로드가 작동하지 않으면 mvn install명령 행에서 시도 하여 종속성을 가져올 수 있는지 확인하십시오.

물론 필요한 모든 종속성 및 사용자 정의 저장소는 pom.xml파일 에서 직접 정의해야 합니다.


14

IntelliJ 2016-2.4 (및 다른 새로운 버전을 믿습니다) :

보기> 도구 창> Maven 프로젝트

새로 공개 된 도구 모음에서 Maven 설정 (도구 세트의 아이콘)을 선택하십시오.

이 화면이 열리면 Maven 메뉴를 펼치고 '가져 오기'를 클릭하십시오.

여기에서 "Maven 프로젝트를 자동으로 가져 오기"를 클릭하십시오. 또한 'JDK for Importer'옵션이 사용하려는 JDK 버전과 일치하는지 확인하십시오.

확인을 클릭하십시오. 이제 pom.xml의 빨간색 종속성으로 이동하여 빨간색 전구를 선택한 다음 'Maven 색인 업데이트'를 클릭하십시오.


1
수입 업체에 적합한 JDK를 선택하는 것이 도움이되었습니다. 또한 마지막 문제를 해결하기 위해 mvn idea : clean idea : idea를 실행해야했습니다.
Vincent F

9

나에게 도움이 된 것 :

탐색 : 설정 | 빌드, 실행, 배포 | 메이븐

"Maven 홈 디렉토리"를 지정하십시오-maven을 설치 한 장소


7

특정 maven 모듈이 컴파일되지 않는 경우 해당 pom.xml이 "무시 된 파일"목록에 있는지 확인하십시오. IntelliJ goto에서

환경 설정-> 프로젝트 설정-> maven-> 무시 된 파일

관련 pom.xml이 무시되는지 확인하십시오.


5

열기 IntelliJ Idea, 파일> 기타 설정> 기본 설정 ...> Maven (기본 설정)> 가져 오기 또는 | Preferences > Maven > Importing

여기에 이미지 설명을 입력하십시오

콘솔에서 자동 가져 오기 사용을 클릭하십시오 .

여기에 이미지 설명을 입력하십시오


4

새 프로젝트를 만들 때 옵션을 선택하기 만하면됩니다.

...
외부 모델에서 프로젝트 가져 오기
기존 외부 모델 (Eclipse, Maven ...)에 대한 IDEA 프로젝트 구조 생성
...

거기에서 바로 앞으로 찾을 수 있습니다.
그리고 귀하의 경우 프로젝트를 닫고 간단히 새 프로젝트를 만들 수 있습니다. 프로젝트의 디렉토리를 선택하면이를 재정 의하여 Maven 프로젝트로 만듭니다.


동의했다. OP가 단순히 프로젝트를 잘못 가져온 것이 확실합니다.
kaqqao

4

동일한 경로를 여러 번 가져 오는 경우 Maven 종속성 가져 오기가 작동하지 않을 수 있습니다. 기존 maven 프로젝트를 가져온 후 자동으로 발생할 수 있습니다. 왜 이런 일이 발생하는지 알 수 없으므로 버그라고 생각합니다.

예를 들어 내 프로젝트가

hibernate
  src/main
  src/test

세 경로는 최상위 노드로 가져올 수 있습니다.

hibernate
src/main
src/test

그런 경우라면, 종속성 오른쪽으로 표시되지만이 경우 (불필요한 경로를 제거 할 때까지 그들이 사용되지 않습니다, src/mainsrc/test ) . 이 작업을 수행 한 후 새로 고치고 빌드> 프로젝트 다시 빌드를 클릭하십시오. IDEA는 종속성을 선택합니다.

이 문제의 증상은 IDEA가 라이브러리를 수동으로 확인할 때 (문제의 두 번째 스크린 샷) 중복 된 경로를 경고한다는 것입니다.

필요한 경우 종속성을 다시 읽는 몇 가지 방법이 있습니다. "Maven Projects"탭으로 이동하면 탭의 왼쪽 상단에 "Reven All Maven Projects"아이콘이 있습니다. IDEA가 혼동되었다고 생각되면 파일> 캐시 무효화를 클릭하십시오.


3

프로젝트 구조로 이동하여 프로젝트 설정, 모듈에서 종속성 테이블을 선택하십시오. 각 종속성에 대해 범위를 'Test'에서 'Compile'로 변경하십시오.


3

프로젝트를 다시 가져 오십시오. maven 플러그인을 설치하면 이것을 사용할 수 있습니다.

프로젝트-> Maven-> Reimport를 마우스 오른쪽 버튼으로 클릭하십시오.


3

대한 지정된 첫 번째 체크 경로 사용자 설정 파일 : 에서 설정 -> 빌드, 실행, 개발 -> 빌드 도구 -> 메이븐 . 필드에는 maven 의 settings.xml 경로가 있어야합니다 . 또한 settings.xml에는 올바른 원격 저장소 경로가 있어야합니다.


settings.xml 파일에서 <mirror> 태그에 중첩 된 <url> 태그 항목이 오래되었습니다. 동료들과 협의하여 업데이트 된 참가 가치를 얻었습니다. ~ / .m2 / settings.xml을 변경하고 intelliJ를 닫은 후 다시 시작했습니다. 다시 시작하고 다른 작업을 수행하지 않으면 maven보기에 나타나는 빨간색 밑줄이 사라졌습니다. 이상하게도 강조된 대부분의 루트 종속성은이 수정을 수행하기 전후에 항상 프로젝트보기의 "외부 라이브러리"항목에있었습니다.
Steve T

3

나는 비슷한 문제가 있었는데, 내 경우에는 settings.xmlIntelliJ에서 선택하지 않은 사용자 정의 를 사용하고 있습니다.

해결책 :
File > Settings > Build, Execution, Deployment > Maven: User settings file (여기에서 내 custom settings.xml을 선택하십시오).


3

나는 같은 문제가 있었고 여기에 언급 된 모든 답변을 시도했지만 아무도 효과가 없었습니다.

간단한 해결책은 프로젝트 폴더로 이동하여 모든 .idea 및 .iml 파일을 삭제하고 IntelliJ ide를 다시 시작하십시오. 효과가있다. 설정으로 아무것도 할 필요가 없습니다.


2

IntelliJ 2016.3.X에서 일부 하위 종속성을 해결할 수 없다는 문제가 발생했습니다. Maven home directory설정> 빌드, 실행, 배포> 빌드 도구> Maven을에서 Bundled (Maven 3)로 변경하면이 문제를 해결할 수 있습니다./usr/share/maven .

그 후 모든 하위 종속성이 이전 IntelliJ 버전에서와 같이 해결되었습니다.


2

Maven-Reimport가 작동하지 않았습니다. STS (Eclipse)에 Spring 프로젝트가 있으며 솔루션은 다음과 같이 IDEA로 프로젝트를 가져 오는 것입니다.

1) 파일-새로 만들기-기존 소스에서 프로젝트 ...-디렉토리 선택-Eclipse를 선택하십시오.
2) 설정에서 Maven 자동 가져 오기를 true로 설정하십시오.
3) 그런 다음 pom.xml을 마우스 오른쪽 버튼으로 클릭하고 Maven Project로 추가를 선택하십시오.

이 후 모든 것을 가져 왔습니다.


2

내 맥북과 비슷한 문제가 있었는데 조금만 변경되었습니다. pom.xml 있었고 모든 종속성을 다운로드하기 시작했습니다.

내 Windows 컴퓨터에 대한 이전 종속성은 다음과 같이 작성되었습니다.

<dependencies>
 <dependency>
  <groupId>javax.mail</groupId>
  <artifactId>mail</artifactId>
  <version>1.4</version>
</dependency>
</dependencies>

방금 <dependencies>and </dependencies>태그를 제거하고 모든 종속성을 다운로드하기 시작했습니다.

<dependency>
  <groupId>javax.mail</groupId>
  <artifactId>mail</artifactId>
  <version>1.4</version>
</dependency>

나는 그것이 당신을 위해 작동하는지 확실하지 않습니다 .. 그러나 나를 위해 잘 작동했습니다.

감사


1

오른쪽 하단에 "2 개의 프로세스 실행 중 ..."또는 이와 유사한 메시지가 표시되면 모든 병을 다운로드하는 데 시간이 걸리기 때문에 완료 될 때까지 기다려야 할 수도 있습니다.


1

올바른 미러 구성으로 settings.xml 파일을 업데이트 하여이 문제를 해결했습니다 .intellij는 maven 모듈을 가져올 때마다 저장소에서 메타 데이터를 다운로드하려고합니다.


1

나를 위해 일한 것을 추가하기 위해 약간의 도용 :

로 이동 Maven ProjectsIDE의 오른쪽 가장자리에 사이드 바로 하여 종속성이 모듈 아래에 올바르게 나열되어 있는지 확인하십시오. 그들이 있다고 가정하면 IDEA에 다시 가져 오기를 요청하십시오 (맨 위의 첫 번째 버튼은 시계 반대 방향 원을 형성하는 두 개의 파란색 화살표처럼 보입니다).

일단 그렇게하고 IDEA가 프로젝트를 다시로드하게하자, 모든 의존성을 마술처럼 이해했습니다.

참고로 : 이것은 IDEA 13.1.2


1

나는 같은 문제에 직면하고 문제를 해결하지 못한 모든 제안을 시도했지만 Intellij 버전 13.1.3을 사용하고있었습니다.

마지막으로이 문제를 해결하기 위해 두 시간 이상을 소비 한 후 업그레이드 된 버전을 사용하기로 결정하고 버전 14.1.4에서 프로젝트를 열어 결국 문제를 해결했습니다. 나는 이것을 이전 버전의 가능한 버그로 생각할 것입니다.

이게 도움이 되길 바란다!


1

프로젝트 설정-> 모듈 목록 에서 불필요한 모듈을 제거하여 해결할 수있었습니다 .

여기에 이미지 설명을 입력하십시오

이 추가 모듈은 IntelliJ IDEA가 프로젝트 폴더에서 가져 와서 (pom.xml을 여는 대신) IntelliJ IDEA가 자동으로 생성 한 것으로 나타났습니다. 그런 다음 프로젝트를 Maven 프로젝트로 선언 한 후 적절한 모듈이 작성되었으며 기존 모듈이 충돌했습니다. 프로젝트 생성 중에 해당 모듈을 제외 할 수도 있습니다.


1

프로젝트 디렉토리에서 .idea 폴더를 삭제 한 다음 프로젝트를 Maven 프로젝트로 다시 가져 오는 것이 저에게 효과적입니다.


1

필자의 경우 모듈 중 하나가 어떤 이유로 무시되었습니다. 이를 해결하려면 : 문제가있는 모듈을 마우스 오른쪽 버튼으로 클릭하고 "프로젝트 무시"를 선택하십시오.

프로젝트 예를 무시하다


1

필자의 경우 MAVEN에서 사용하는 JAVA의 경로가 시스템에서 구성된 JAVA_HOME으로 설정되지 않았습니다. 따라서 종속성을 다운로드하려고 시도조차하지 않았습니다. 이 단계를 수행 한 단계에 따라

  1. JAVA 경로, 설정 >> 빌드 >> 빌드 도구 >> 가져 오기 >> JDK for importer를 확인했습니다 . JAVA_HOME을 가리 켰습니다.

  2. mvn clean install -U

    종속성을 강제로 다운로드하기 위해 위의 명령을 사용했습니다.

  3. 다시 가져온 Maven 프로젝트


0

다른 모든 것이 실패하면 로컬 .m2 저장소의 jar 파일이 실제로 유효하고 손상되지 않았는지 확인하십시오. 필자의 경우 파일이 완전히 다운로드되지 않았습니다.


0

maven에서 dependencyManagement xml 섹션을 제거하고 프로젝트 섹션 바로 아래에 종속성이있을 때 종속성이 포함되었습니다.


0

문제는 pom.xml에 종속성을 나열하더라도 프로젝트를 실행할 때 IntelliJ IDEA가 이러한 종속성을 다시 작성하지 않는다는 것 같습니다.

나를 위해 일한 것은 이것입니다 :

'실행'-> '구성 편집 ...'으로 이동하여 애플리케이션을 찾은 다음 "시작하기 전에 :"섹션이 펼쳐져 있는지 확인하고 녹색 더하기 부호를 클릭하고 "프로젝트 빌드"를 선택하십시오.

여기에 이미지 설명을 입력하십시오


0

pom.xml 파일의 빌드 태그 뒤에이 코드 줄을 추가하여 문제를 해결할 수 있었고 실행중인 프로젝트와 비교하여 그 차이를 발견했습니다. 이제 모두 좋습니다.

<repositories>
        <repository>
            <id>spring-snapshots</id>
            <name>Spring Snapshots</name>
            <url>https://repo.spring.io/snapshot</url>
            <snapshots>
                <enabled>true</enabled>
            </snapshots>
        </repository>
        <repository>
            <id>spring-milestones</id>
            <name>Spring Milestones</name>
            <url>https://repo.spring.io/milestone</url>
        </repository>
    </repositories>
    <pluginRepositories>
        <pluginRepository>
            <id>spring-snapshots</id>
            <name>Spring Snapshots</name>
            <url>https://repo.spring.io/snapshot</url>
            <snapshots>
                <enabled>true</enabled>
            </snapshots>
        </pluginRepository>
        <pluginRepository>
            <id>spring-milestones</id>
            <name>Spring Milestones</name>
            <url>https://repo.spring.io/milestone</url>
        </pluginRepository>
    </pluginRepositories>
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.