[java] Maven 패키지는 작동하지만 Intellij의 빌드가 실패합니다.

내 maven repo의 로컬 jar에 대한 maven 종속성이있는 JDK 1.7 프로젝트가 있습니다.

Intellij를 사용하여 프로젝트를 빌드 할 수 없으며 기호를 찾을 수 없다는 오류가 발생합니다 (기호는 로컬 jar에서 패키지를 가져 오는 클래스입니다).

하지만 ‘mvn package’를 사용하여 프로젝트를 성공적으로 빌드 할 수 있습니다.

솔루션을 찾기 위해 너무 많은 시간을 보냈습니다.

  • 무효화 된 캐시
  • ‘mvn clean install’로컬 jar 종속성
  • Intellij의 Maven 구성에서 ‘자동로드 스냅 샷’으로 표시됨
  • Intellij의 Reimpoted Maven
  • Syncornized

이 오류는 이전에 몇 번 발생했지만 일반적으로 Intellij를 닫거나 ‘mvn clean install’을 수행하면 트릭이 발생했습니다.

도와주세요.



답변

나는 이것이 늦었지만 실행 mvn idea:idea하면 문제가 해결됩니다.


답변

모든 .iml 및 POM을 삭제하십시오. 그런 다음 POM을 다시 프로젝트에 복사하여 붙여넣고 다시 열고 다시 가져옵니다.


답변

내 .iml 파일과 pom이 충돌하여 문제를 일으키는 것으로 나타났습니다.


답변

다른 사람에게 도움이 될 수있는 경우를 대비하여 비슷한 문제 (IntelliJ가 아닌 mvn에서 프로젝트 빌드)가 발생했을 때 검색에서 가장 먼저 나온 것이기 때문에 더 많은 팁을 추가합니다.

내가 이것을 가지고 있었을 때 그것은 Windows와 Mac에서 다른 수정이었습니다.

Mac에서는 ItellijIDEA / Preferences / Build, Execution, Deployment / Build Tools / Maven / Maven Home Directory로 이동하여 번들 Maven 대신 별도로 설치된 Maven을 사용하도록 설정했습니다. 모든 빌드 문제가 해결되었습니다.

Windows에서 SSL과 관련된 idea.log에서 예외를 보았고 프로젝트 트리에는 External Libraries 분기 아래에 Java 만 있습니다. 다른 사이트를 보면 IntelliJ가 시스템 하나 대신 자체 개인 JDK를 사용하는 것처럼 들립니다 (제 경우에는 이미 동일한 JDK 버전이 설치되어 있지만). 내 시스템 JDK에는 IntelliJ 개인 JDK에없는 기업 Nexus 서버의 키 저장소에 인증서가 설치되어 있으므로 Nexus에서 파일을 가져 오려고 할 때 예외가 발생했습니다. 이를 위해 해결책은 IntelliJ를 종료하고 IDEA_JDK라는 환경 변수를 설정하여 적절한 인증서가있는 이미 설치 한 JDK를 가리 키도록 설정하고 IntelliJ를 다시 시작하는 것입니다. 모든 빌드 문제가 해결되었습니다.


답변

Maven ReImport은 다음과 같이 나를 위해 일했습니다 …

여기에 이미지 설명 입력


답변

IDE는 빌드를 수행 할 때 자체 번들 Maven 사본을 사용합니다. 터미널의 maven이 IDE와 다른 경우 동일해야합니다.

GOTO (Mac)-IntelliJ 아이디어-> 환경 설정-> 빌드, 실행, 배포-> 빌드 도구-> Maven. Maven 홈 디렉토리 경로 설정
터미널에서 사용하는 Maven 경로를 찾으려면 command를 입력 mvn -version하면 dir 경로를 포함한 세부 정보가 출력됩니다. Maven 홈 디렉토리 에 넣으십시오 .

안전을 위해 JDK 위치에 대해서도 동일한 작업을 수행 할 수 있습니다.

==== 그러한 문제를 일으킬 수있는 다른 것들 ===

mvn 패키지 또는 mvn clean install 빌드를 수행하는 경우 IDE 캐시로 작업을 수행해야합니다. 무엇보다도 이것은 일반적으로 이러한 오류에 도움이됩니다 .–>

파일-> 캐시 무효화


답변

나는이 대화에 꽤 늦었다는 것을 알고 있지만, 다른 누군가가이 문제를 발견 할 경우를 대비하여 이것을 게시하고 싶었습니다. 이것이 발생하는 또 다른 이유는 올바른 저장소를 참조하지 않기 때문입니다. Intellij는 기본적으로 자신의 Maven 저장소 대신 번들 버전의 jar를 선택합니다. 연결된 저장소가 올바른지 확인하십시오.