2011-08-21 7 views
15

프로젝트를 시작했을 때 Maven을 인식하지 못했습니다. 프로젝트가 이미 꽤 큰 크기로 커진 후에이 프로젝트의 중요성을 깨달았습니다. 그 당시 저는 정말 급속한 발전을 보였으므로 저는 그 흐름을 깨고 싶지 않았습니다. 그래서, 나는 프로젝트에 maven을 연결하는 것을 연기했다. 이제 약간의 호흡 공간이 생겨서 프로젝트에 maven을 추가하고 싶습니다.기존 프로젝트를 Maven 프로젝트로 변환

내가하는 일이나해야 할 일이 무엇인가요? 프로젝트에는 Spring, Struts, Log4J, Hibernate 및 JAX-RS가 있습니다.

답변

22

좋아 .. 결국 프로젝트를 maven으로 옮겼습니다. 여기 내가 한 일이있다.

  1. m2e eclipse plugin을 다운로드하십시오. 그것은 당신의 가장 친한 친구입니다!
  2. 스켈 레탈 메이븐 프로젝트를 만듭니다. src/main/java는 코드가 있어야하는 곳입니다. 코드를 src/main/java 폴더로 이동하십시오. 기존 패키지 구조를 계속 사용할 수 있습니다. 그것을 바꿀 필요가 없습니다. maven은 src/main/java를 소스 폴더로 설정하므로 코드를 변경하지 않아도되므로 패키지 선언을 변경할 필요가 없습니다.
  3. 단위 테스트를 src/test/java로 옮깁니다. 패키지 선언을 변경하지 않아도됩니다.
  4. 라이브러리를 복사하지 마십시오. & 병.
  5. 누락 된 jar로 인해 발생한 컴파일 오류를 모두 확인하십시오.
  6. 누락 된 각 jar의 pom.xml에 대한 종속성을 추가하십시오. Maven 저장소 웹 사이트에서 종속성을 얻을 수 있습니다.m2e 플러그인의 저장소를 이미 인덱싱 한 경우에는 플러그인 내의 종속성을 검색하여 바로 거기에서 추가 할 수 있습니다.

다중 모듈 프로젝트가있는 경우 위에서 설명한대로 다른 모듈을 maven으로 변환하고 다른 모듈의 pom.xml에 종속 모듈을 추가하십시오.

maven 기반이 아닌 사용자 정의 jar가있는 경우 src/main/resources 폴더에 추가 한 다음 jar를 빌드 경로에 추가 할 수 있습니다.

저기! 쉬워요!

스프링 + 메이븐 + EC2에 대한 스켈 레탈 프로젝트 설정이 있습니다. Maven을 만들고 구성하며 배포 프로세스를 자동화하는 데 사용할 수 있습니다.

https://github.com/varunachar/maven-release

+0

Varun : 나는 봄 프로젝트를 Maven 프로젝트로 바꾸기위한 요구 사항이 있으므로 좀더 정교하게 설명 할 수있다. –

+0

어느 부분에 도움이 필요합니까? 스켈 레탈 메이븐 프로젝트를 생성하거나 가장 간단한 메이븐 아키타 입을 사용하여 스켈레톤을 생성하는 데 Spring STS 도구를 사용하십시오. 그런 다음 위에서 언급 한 단계를 사용하여 새 프로젝트에 코드를 포팅 할 수 있습니다 –

4

나는 똑같은 상황에 직면했다. 또한 maven에 JavaEE5에서 JavaEE6으로 마이그레이션했습니다. 나는 단계별 마이그레이션 단계를 수행 한 :

  • 만든 프로젝트를 받는다는하기 이전 프로젝트에서 기존의 구조에
  • 마이그레이션 수업을 따라 Maven 프로젝트에 대한 몇 가지 모듈을 만든 받는다는 프로젝트
  • 을하고 이러한 클래스를 추가 이전 프로젝트의 항아리로

이렇게하면 기존 구조에서 Maven으로 원활하게 마이그레이션 할 수 있습니다. 하루가 끝나면 여러분은 여러분의 구조로부터 더 많은 것을 얻고 항상 프로젝트를 더욱 발전시킬 수 있습니다.

+0

"이전 구조에 따라 maven 프로젝트에 대해 여러 모듈을 만들었습니다."오래된 프로젝트 구조의 복제본을 만들지 않았습니까? 아니면 프로젝트 구조를 개선하기 위해 이렇게 했습니까? –

+0

그것이 바로 프로젝트 구조 개선의 요점입니다. 쉽지는 않습니다 (아마 당신도 _cyclic dependencies_에 직면 할 것입니다). 그러나 실제로는 더 나은 구조가됩니다. – Thor

+0

내 경험으로 한 번에 한 가지만 해보십시오. 먼저 복제본을 만듭니다. 일단 프로젝트가 메이븐에 있다면, 나중에 큰 프로젝트를 위해, 그것을 여러 모듈로 바꾸는 것을 생각할 수 있습니다. – gigadot

2

난이도는 당신이 프로젝트에 대해 얼마나 알고 있고 얼마나 큰 프로젝트인지에 달려 있습니다. 작은 프로젝트를 먼저 실행하고 어떻게 진행되는지 보는 것이 더 쉽습니다. 그들이 중앙 저장소 나 알려진 온라인 위치에있는 한 의존하는 라이브러리는 중요하지 않습니다. 고소하고있는 라이브러리가 온라인 메이븐 저장소에 존재하지 않는다면 로컬 또는 온라인 장소에 jar 파일을 배포해야합니다. 좋은 호스팅 서비스를 찾을 수 없다면 Github에 올려 놓을 수도 있습니다. 다음은 trick입니다.

ant 프로젝트를 읽어야하는 maven 프로젝트로 변환하는 데 관한 흥미로운 기사가 ​​꽤 있습니다. 여기에 구글 검색에서 첫 번째 히트입니다 http://www.sonatype.com/people/2009/04/how-to-convert-from-ant-to-maven-in-5-minutes/

내 유일한 의견은 프로젝트를 변환 할 때 IDE를 최대한 활용하는 것입니다. 예를 들어, 코드를 이동할 때 IDE에서 리팩터 기능을 사용하십시오. 필자는 Netbeans의 Maven 지원이 매우 유용하고 사용하기 쉽다는 것을 발견했다.

0

이클립스에서는 m2e-eclipse 플러그인 단순히 받는다는 흥미로운 프로젝트를 변환 할 수 있습니다.

intellje에서 새 maven 프로젝트를 만든 다음 src/java/패키지 이름으로 설정하고 리소스 폴더로 구성하기 만하면됩니다. 그러면 컴파일 오류 로그에서 필요한 모든 종속성을 추가 할 수 있습니다.

관련 문제