2013-09-24 5 views
1

Maven을 사용하여 프로젝트를 빌드하는 것이 처음입니다. 필자는 컴파일 할 때 빌드에 추가되도록 프로젝트에 필요한 jar의 윤곽을 나타내는 POM 파일 내의 종속성을 선언했음을 이해합니다.Maven 종속성 이해

제 질문은 응용 프로그램 개발을 위해 jar 파일이 필요할 때 개발 과정에서 어떻게 작동합니까? Maven의 핵심은 실제로 jar 파일을 가지고있을 필요가 없다는 것이 었습니다. 빌드 할 때 인수되고 인수되었습니다. 그러나 내가 개발 중이며 jar 파일이 필요한 경우 (예를 들어 Jersey), 개발 작업을 수행하기 위해 나가서 jar 파일을 lib 디렉토리에 넣어야합니다. 나는 그 클래스에서 어떤 클래스/메소드를 사용할 수 있는지 알고있다. 누군가 내가 무엇을 놓치고 있는지 설명해 줄 수 있습니까?

저어지 클래스를 참조하는 import 문은 컴파일 타임에 해결됩니다. 현재는 jar 파일이 현재 존재하지 않으므로 빨간색으로 밑줄이 그어져 있습니까?

답변

1

종속성을 Maven pom에 지정했으면 다운로드 할 책임이 있습니다. 코드에 상관없이 Maven은 그 jar에 의존성이 있는지 신경 쓰지 않는다. 그래서 당신의 IDE에서 [단순한 자바 프로젝트가 아닌] Maven 프로젝트를 만들고, pom에 모든 의존성을 추가하면, pom을 저장할 때 모든 종속성이 다운로드됩니다. 종속성이 다운로드되지 않으면 저장소 URL 또는 자격 증명이 올바르지 않을 수있는 maven settings.xml 파일을 확인해야합니다.

광고를 만들고 싶으면 부품 정보를 작성하십시오. Maven은 war 파일 [assembly plugin] 또는 rpm [maven rpm plugin]에서 모든 의존성을 패키지하는 데 도움이되는 많은 플러그인을 사용할 수 있습니다. 이 플러그인은 모든 jar 파일과 함께 모든 종속성을 단일 배치 가능 파일로 래핑합니다.

+0

제가 누락 된 열쇠라고 생각합니다. pom 파일을 저장할 때 항아리가 다운로드됩니다. 감사! – user1154644

+0

인터넷에 접속할 수없는 머신에서 개발 중일 때 maven과 더 관련이있는 다른 질문이 NetBeans에서 로컬 Maven 저장소를 가리킬 수있는 방법이 있습니까? 지금 당장 netbeans를 사용하여 Java Maven Project를 만들려고하면 프로젝트 생성이 실패합니다. 'archetype'이라는 접두사가없는 플러그인 ..... – user1154644

+0

모든 ide의 프로젝트는 항상 로컬 리포지토리를 가리키고 있지만 로컬 리포지토리에 종속성을 다운로드하기위한 순수 액세스가 필요합니다. 인터넷이 작동하지 않는 경우 로컬 저장소에 jar 파일을 수동으로 배치 할 수도 있습니다. Maven은 해당 jar 버전이 로컬 저장소에없는 경우에만 jar를 다운로드합니다. – Lokesh

1

귀하의 가정이나 추정 또는 착오가 잘못되었습니다.

예를 들어 보겠습니다. 당신은 받는다는을 사용하여 프로젝트를 만들고 새로운 웹 응용 프로그램 프로젝트

  1. 을 만들 : 원형
  2. 일식 프로젝트를 변환 준수 (모든 IDE 호환). 이것은 하나의 명령을 실행하여 수행되며 필요한 jar를 클래스 경로 파일에 추가하므로 평상시처럼 응용 프로그램을 개발할 수 있습니다.
  3. 빌드 및 모든 Java Maven 프로젝트로 첫째
+0

IDE가 Maven을 직접 지원하는 경우 (예 : NetBeans) –

+0

동의합니다. 아무도 메모장이나 다른 일반 편집기에서 코드를 개발하고 싶지 않기 때문에 필요한 것은 아니지만 다소 필요합니다. –

+0

그것은 나에게 이상하게 보입니다. 빌드/컴파일시에는 jar의 클래스에 대한 참조가 해결되지만 클래스를 만들고 저지 클래스를 가져온 다음 클래스를 사용하기 시작하면 컴파일러는 그 클래스에 대해 어떻게 알 수 있습니까? 아직 다운로드되지 않았습니다. – user1154644

1

를 배포, 당신은 넷빈즈를 사용하는 경우 특히, 옵션 '종속성 빌드'를 선택해야합니다. Eclipse를 사용하면 '소스 다운로드'를 선택할 수 있습니다. 이것이 완료되면 Maven 의존성 (JAR 파일)이 다운로드됩니다.

또한 가져 오기 문은 컴파일 할 때 해결됩니다. 이 작업은 NetBeans의 Java 프로젝트에서 마우스 오른쪽 버튼을 클릭하여 'Build With Dependencies'옵션을 클릭하면 모든 종속성을 다운로드하고 응용 프로그램을 빌드하고 pom.xml에있는 JAR 라이브러리를 사용하는 모든 가져 오기를 해결하므로 수행됩니다. .

+0

알겠습니다. 내 오해는 빌드를 수행하기 전에, Jersey jar 파일의 클래스를 참조 할 때 Eclipse가 내가 말하는 것을 알 수 있습니까? – user1154644

+0

해야합니다. 또한 정확한 Eclipse Maven 플러그인이 설치되어 있는지 확인해야합니다. (그것은 쉽게 잊어 버릴 수 있습니다!) – blackpanther