2012-11-14 2 views
2

Eclipse에서 새로운 Maven 프로젝트를 만들었습니다. pom.xml이없고 레거시 유틸리티 프로젝트 인 다른 Eclipse 프로젝트에 종속성을 추가해야 할 때까지이 작업은 정상적으로 작동하며 일반적인 Maven 프로젝트의 디렉토리 구조는 가지고 있지 않습니다. (전형적인 Eclipse 자바 프로젝트의 디렉토리 구조를가집니다.) 이 다른 프로젝트는 Maven 프로젝트와 동일한 Eclipse 작업 공간에 있습니다.Maven/Eclipse 플러그인 : 새로운 Maven 프로젝트가 기존의 비 Maven 프로젝트에 종속되도록하는 가장 쉬운 방법은 무엇입니까?

다른 게시물을 보면, 일반적으로 해결책은 다른 프로젝트의 jar 파일을 빌드하고 Maven에 설치하는 것입니다. 그러나 Maven 프로젝트에 코드를 작성하는 동안 유틸리티 프로젝트의 코드를 적극적으로 수정하고 있으므로 종속성을 충족시키기 위해 jar 파일을 한 번만 설치할 수는 없습니다.

두 프로젝트에서 동시에 코드를 작성할 수 있고 maven을 깔끔하게 빌드하려면 가장 쉬운 방법은 무엇입니까? 내 치어에 유틸리티 프로젝트 소스 폴더를 추가 빌드 도우미 플러그인을 사용

UPDATE

는 솔루션에 실행 가능한 경로이었다 (물론 이클립스. 단지 프로젝트 종속성이 잘 구축 할 수 있습니다)하지만, 그런 다음 유틸리티 프로젝트의 모든 종속성을 새 Mavne 프로젝트로 업데이트해야했습니다.이 프로젝트는 전체 프로세스를 너무 오랜 시간이 걸리게했습니다. (그리고 내가 원하는 종속성의 체인도 아닙니다.) 모든 의존성을 추가한다면 Build Helper 제안이 효과가 있었을 것이라고 생각합니다.

지금은 유틸리티 프로젝트 병을 빌드하고이를 maven에 설치했습니다. 가장 빠른 해결책으로 밝혀졌습니다. 나는 (아래 FrVaBe에 의해 제안 된) 그 구조를 수정하지 않고 유틸리티 프로젝트를 Mavenize하려고 할 것이고, 이후에 poms를 연결할 수 있는지 살펴볼 것이다.

나는이 문제가 다른 사람들이 가지고있는 문제라고 생각하기 때문에 다시보고 할 수있는 완전한 해결책이있을 때까지이 질문을 계속 열어 둘 것입니다. (기존 프로젝트를 새로운 maven 프로젝트와 통합하려고 시도 할 때).

답변

3

개발 시간에 종속성을 System Dependency으로 추가 할 수 있습니다. 이 경우 파일 경로 (개발중인 utility.jar 파일의 경로가 될 수 있음)로 해결됩니다. 위의 링크에서 설명하는대로

예컨대 :

<dependencies> 
    <dependency> 
     <groupId>my-utility</groupId> 
     <artifactId>my-utility</artifactId> 
     <version>1.0</version> 
     <scope>system</scope> 
     <systemPath>${somewhere}/lib/my-utility.jar</systemPath> 
    </dependency> 
    </dependencies> 

시스템 의존성의 받는다는 처리 때로는 특별한 추가됩니다. 예 : 그들은 전쟁 패키지에 포함되지 않을 것입니다! 따라서 작업이 끝나면 유틸리티 라이브러리를 Maven 저장소에 설치하거나 저장소 관리자 (Nexus/Artifactory)에 배포하는 것이 좋습니다.

+0

저는 Maven을 처음 사용했습니다. 시스템 의존성을 추가하는 방법을 설명해 주시겠습니까? –

+0

시스템 종속성을 추가하려고 시도했습니다. 클래스 파일의 루트 폴더에 ''을 설정했습니다. 그러나 메이븐 (Maven)은 경로가 jar 파일이 아니라 폴더가되기를 원한다고 생각합니다. –

+1

@SamGoldberg 예, 유틸리티 jar 파일이어야합니다. 다른 소스/리소스 디렉토리를 추가하려면 [build-helper-maven-plugin] (http://mojo.codehaus.org/build-helper-maven-plugin/plugin-info.html)을 시도해 볼 수 있지만 이 프로젝트를 중복 사용하지 않을 것입니다. – FrVaBe

0

나는이 http://www.avajava.com/tutorials/lessons/how-do-i-add-a-project-as-a-dependency-of-another-project.html?page=1 링크가 도움이된다고 생각합니다. 단계별 자습서입니다.

+0

이 링크는 2 개의 Maven 프로젝트를 함께 연결하는 방법을 보여 주며, 1 개의 Maven 프로젝트를 Maven에 설치해야합니다. 그래서 이것은 내 유스 케이스에 맞지 않는다. (a) 프로젝트 중 하나가 non-maven 레거시 프로젝트 (CSV에서 엉망이되지 않고도 메이븐에 추가 작업을 할 수있는 많은 작업)이고 (b) 나는 'mvn test'를 실행할 때마다 수동으로 항아리를 만들 필요없이 Eclipse에서 소스 코드를 업데이트 할 수 있습니다. –

1

이클립스에서 유틸리티 프로젝트의 src 폴더를 작업 프로젝트에 추가 할 수 있습니다. 귀하의 개발 목적을 위해.

right click on Working project 
go to properties and choose java build path 
go to source tab 
Add your utility project src folder to that. 

나중에 maven 종속성으로 jar를 설치할 수 있습니다.

+0

이것은 이미 완료되었습니다. 그러나 내가하려고했을 때 :'mvn test'가 모든 것이 제대로 작동하는지 확인하기 위해 Eclipse 프로젝트 의존성을 해결하지 못해서 실패했다. 나는'mvn' 명령과 이클립스에서 빌드 할 수있는 방법을 찾으려고 노력하고있다. –

관련 문제