기존 Eclipse 프로젝트를 Maven 프로젝트로 변환


246

작업중인 프로젝트의 경우 Eclipse 용 Maven 플러그인을 사용하여 빌드를 자동화하는 것을 고려하고 있습니다. 지금 당장은 절차가 훨씬 복잡 해졌고, Maven이 원 클릭 빌드로 작업을 단순화하기를 바라고 있습니다.

내 질문은 Maven 플러그인을 사용하여 기존 Eclipse Java 프로젝트를 Maven 프로젝트로 변환하기위한 마법사 또는 자동 가져 오기가 있습니까? 아니면 새로운 Maven 프로젝트를 만들고 모든 소스 파일, 라이브러리 등을 수동으로 복사해야합니다.


3
기존 빌드는 Ant 스크립트를 사용합니까?
matt b

4
당신은 아마 대답을 전환해야합니다
Mr_and_Mrs_D

답변:


141

기본 POM을 만들고 m2eclipse 기능을 사용하려는 경우 : 현재 다른 자동 빌드 설정을 가져 오지 않고 있다고 가정하고 m2eclipse 플러그인에 대해 이야기하고 있다고 가정합니다.

m2eclipse 플러그인은 프로젝트에서 오른쪽 클릭 옵션을 제공하여이 기본 pom.xml을 추가합니다.

최신 M2E 버전

프로젝트-> 하위 메뉴 구성-> Maven 프로젝트로 변환을 마우스 오른쪽 버튼으로 클릭하십시오.

이전 M2E 버전

프로젝트-> 하위 메뉴 Maven-> 종속성 관리 사용을 마우스 오른쪽 단추로 클릭하십시오.

해당 프로젝트에 플러그인을 활성화하는 데 필요합니다.


' 자동 수입업자 또는 마법사가 있습니까? ': 내가 아는 한에서는 아니다. 위의 옵션을 사용하면 수동 복사를 피하면서 기존 프로젝트에 m2eclipse 플러그인을 활성화 할 수 있습니다. 실제로 의존성과 다른 것들을 직접 구축해야합니다.


M2Eclipse를 사용할 수 있지만 실제로는 기존 Eclipse 프로젝트를 가져 오지 않는 마법사는 아닙니다. 오히려 의존성 등을 선택할 수있는 옵션을 사용자에게 제공하는데, Maven에 대한 경험이 많지 않으면 어려울 수 있습니다.
Kaleb Pederson

나는 '새 프로젝트를 만들고 m2eclipse 플러그인을 사용하기 위해 수동으로 물건을 복사해야합니까?'라는 질문을 해석했습니다.
brabster

16
chengdong의 답변은 오른쪽 클릭 메뉴 (최신 m2eclipse)에서 maven 메뉴 항목을 사용할 수 없습니다.
wulfgarpro

8
Eclipse (4.2) 및 m2eclipse의 현재 버전에서 메뉴 항목은 Maven Project로 변환 / 변환입니다.
Jesper

12
@Jesper 메뉴 항목은 "구성 / Maven 프로젝트로 변환"
angelcervera

293

m2e 0.13.0 (이전 버전이 아닌 경우)부터 시작하여 컨텍스트 메뉴에서 Java 프로젝트를 Maven 프로젝트로 변환 할 수 있습니다. 방법은 다음과 같습니다.

  • Java 프로젝트를 마우스 오른쪽 단추로 클릭하여 컨텍스트 메뉴를 팝업하십시오.
  • 구성> Maven 프로젝트로 변환을 선택하십시오.

스크린 샷 의 세부 단계 는 다음과 같습니다 .


30
이것은 여전히 ​​디렉토리 구조를 작성하지 않으며 pom에 종속성을 추가합니다.
Klaus Nji

2
m2e가 여전히 maven 디렉토리 구조를 작성하지 않고 pom에 종속성을 추가합니까?
Mr_and_Mrs_D

2
아래 언급 된 내 솔루션 (@ShriKant Vashishtha)은 여기에 설명 된 모든 문제를 해결합니다. 메이븐 구조 폴더 이름에서 제거합니다 스페이스를 생성 메이븐 pom.xml 파일 구조와 이동 소스 폴더 작성
ShriKant Vashishtha

당시 Windows 10 Eclipse Mars에서 완벽하고 완벽하게 작동합니다.
Matthis Kohli

그것은 나에게 완벽하게 작동한다
WitnessTruth

12

나는 같은 문제가 있었고 약 60 개의 Eclipse 프로젝트가 포함 된 전체 일식 작업 공간을 Mavenise하고 싶었습니다. 그렇게하는 데는 많은 시간이 필요했고 다른 옵션은 그다지 효과적이지 않았습니다. 이 문제를 해결하기 위해 마침내 github에서 eclipse-to-maven 이라는 프로젝트를 만들었습니다 . 일식에는 종속성에 대한 모든 필수 정보가 없으므로 다음을 수행합니다.

  • <classpathentry/>.classpath 파일의 XML 요소를 기반으로 다른 프로젝트에 대한 종속성을 작성하고 라이브러리 jar 파일을 식별하며 해당 이름 (예 : jakarta-oro-2.0.8.jar)을 기반으로 버전을 식별합니다. 현재 artifactIdgroupId에 따라 종속성의 Maven groupId를 반환 할 수있는 것을 찾을 수없는 것과 같습니다 artifactId. 이것이 완벽한 솔루션은 아니지만 Mavenisation 속도를 높일 수있는 좋은 토대를 제공합니다.

  • 그것은 메이븐 규칙에 따라 모든 소스 폴더를 이동 (같은 src/main/java)

  • 공백이있는 이름을 가진 Eclipse 프로젝트는 Linux / Unix 환경에서 다루기가 어렵 기 때문에 공백이없는 이름으로 이름을 바꿉니다.

  • 결과 pom.xml 파일에는 종속성 및 기본 pom 구조가 포함됩니다. 필요한 Maven 플러그인을 수동으로 추가해야합니다.


흥미 롭습니다! Luna로 포팅 되었습니까? 이 프로젝트는 여전히 (유효 일식 프로젝트가 될 것입니다 .classpath.project파일)? 플러그인을 사용하여 간단한 JavaSE 프로젝트를 구현하는 방법과 디렉토리 구조의 실제 변경 내용은 무엇입니까?
Mr_and_Mrs_D

미안하지만 루나가 무엇인지 모르겠습니다. 프로젝트 디렉토리 구조가 변경되면 더 이상 유효한 이클립스 프로젝트가 아닙니다. 그러나 Maven을 사용하여 수정 된 Eclipse 구성을 작성하는 것은 쉽습니다. 이것은 플러그인이 아니라 도구입니다. 실행 방법은 프로젝트의 README에 이미 언급되어 있습니다. 디렉토리 구조는 Maven 규칙으로 변환됩니다. 예를 들어 모든 소스는 src / main / java로 이동합니다.
ShriKant Vashishtha

루나는 일식의 최신 버전입니다!
Mr_and_Mrs_D

7

프로젝트 이름> 구성> Maven 프로젝트로 변환> 마우스 오른쪽 단추를 클릭하고 완료를 클릭하십시오. 여기에서는 예상 jar 파일을 다운로드하고 추가하기 위해 일부 종속성을 추가합니다.

자동 생성 된 pom.xml 파일이 생성됩니다. Eclipse 편집기에서 해당 파일을 xml 형식으로여십시오. 빌드 태그 ( </build>) 후에 maven 웹 사이트에서 복사하여 추가 할 수있는 종속성을 추가하십시오. 이제 잘 가세요. 이러한 종속성은 필요한 jar 파일을 자동으로 추가합니다.


1
이것은 maven 폴더 구조를 생성합니까?
Mr_and_Mrs_D

예, 적절한 매핑 된 아키 타입 템플릿과 최소 구성을 기반으로 maven 폴더 구조를 만듭니다. 한 번에 하나씩 수동으로 POM.xml에 각 프로젝트 종속성 (.classpath)을 추가해야합니다.
Pratap Singh

5

Chengdong의 답변이 정확합니다 Configure>Convert to Maven Project. 를 사용해야합니다 . 그러나 m2e 0.13.0 : m2e 1.1+ 및 m2e-wtp 0.16.0+가 기존 Eclipse 설정을 maven 플러그인 구성으로 변환 할 수 있기 때문에 변환 프로세스가 크게 개선되어야한다고 덧붙여 야 합니다 .

: 종속성 변환 문제에 관해서는, 당신은 m2e의 변환 프로세스에 연결 JBoss의 도구 실험 변환 마법사를 포함 (JBT) 4.0 메이븐 통합 기능, 시도 할 수 http://docs.jboss.org/tools/whatsnew/maven/을 maven-news-4.0.0.Beta1.html .

그것은 Maven 변환 프로세스를 부트 스트랩하는 데 크게 도움이되므로 궁극적 인 솔루션 인 척하지 않습니다 (아무것도 할 수 없음).

또한 참고로, 여기에 m2e의 변환 프로세스를 향상시키는 몇 가지 아이디어 가 있습니다. Maven 레이아웃을 사용하기 위해 리팩토링이 향후 구현 될 것입니다.

JBT 4.0 (Eclipse JavaEE Juno 필요)은 http://download.jboss.org/jbosstools/updates/stable/juno/ 또는 Eclipse Marketplace에서 설치할 수 있습니다.


4

git에서 프로젝트를 가져올 때 maven 프로젝트가 아니기 때문에 maven 종속성이 빌드 경로에 없기 때문에 필요합니다.

다음은 일반적인 프로젝트를 maven 프로젝트로 전환하기 위해 수행 한 작업입니다.

일반 프로젝트-> java 프로젝트 프로젝트, 속성-> 프로젝트 패싯을 마우스 오른쪽 단추로 클릭하고 "java"를 클릭하십시오. 이 단계는 일반 프로젝트를 Java 프로젝트로 바꿉니다.

java 프로젝트-> maven 프로젝트 마우스 오른쪽 버튼으로 프로젝트 클릭, 구성-> maven 프로젝트로 변환 현재 maven 종속성 lib는 여전히 빌드 경로에 없습니다. 프로젝트 속성, 빌드 경로, 라이브러리 추가, maven 의존성 추가 lib

그리고 종속성이로드되면 프로젝트가 준비되었습니다.


2

Java 프로젝트를 SBT / Maven 프로젝트로 변환하는 명령 행 프로그램이 있습니다.

모든 jar를 해결하고 SHA 체크섬, 클래스 경로 또는 파일 이름을 기반으로 올바른 버전을 파악하려고 시도합니다. 그런 다음 작동하는 구성을 찾을 때까지 소스를 컴파일하려고 시도합니다. 종속성 구성별로 실행할 사용자 지정 작업도 제공 할 수 있습니다.

UniversalResolver 1.0
Usage: UniversalResolver [options]

  -s <srcpath1>,<srcpath2>... | --srcPaths <srcpath1>,<srcpath2>...
        required src paths to include
  -j <jar1>,<jar2>... | --jars <jar1>,<jar2>...
        required jars/jar paths to include
  -t /path/To/Dir | --testDirectory /path/To/Dir
        required directory where test configurations will be stored
  -a <task1>,<task2>... | --sbt-tasks <task1>,<task2>...
        SBT Tasks to be executed. i.e. compile
  -d /path/To/dependencyFile.json | --dependencyFile /path/To/dependencyFile.json
        optional file where the dependency buffer will be stored
  -l | --search
        load and search dependencies from remote repositories
  -g | --generateConfigurations
        generate dependency configurations
  -c <value> | --findByNameCount <value>
        number of dependencies to resolve by class name per jar

https://bitbucket.org/mnyx/universalresolver


이것은 매우 매력적인 옵션처럼 보입니다. 그러나 현재 패키지되어 있으므로 액세스하기가 쉽지 않습니다. source.code를 패키지하고 배포하는 방법은 명확하지 않습니다. 대부분의 Java 개발자는 스칼라 개발자가 아니며 SBT가 커뮤니티 내에서 널리 사용되는 도구가 아닙니다.
A. Rick

1

내 질문은 Maven 플러그인을 사용하여 기존 Eclipse Java 프로젝트를 Maven 프로젝트로 변환하기위한 마법사 또는 자동 가져 오기가 있습니까?

내가 아는 한, Eclipse 프로젝트를 Maven 프로젝트로 자동 변환하는 것 (즉, 레이아웃 수정, POM 생성, "생성"및 메타 데이터로 피드, 라이브러리 및 해당 버전을 감지하여 POM에 추가하는 것은 없습니다. 등). 이클립스에는 메타 데이터가 충분하지 않기 때문에 (이것이 정확하게 POM의 요점 임) 적절한 결과를 생성 할 수 있습니다.

아니면 새로운 Maven 프로젝트를 만들고 모든 소스 파일, 라이브러리 등을 수동으로 복사해야합니까?

그것은 내 의견으로는 최선의 선택 일 것입니다. Maven 프로젝트를 생성하고, 소스, 리소스를 복사 / 이동, 테스트하고, 해당 디렉토리로 리소스를 테스트하고, 종속성을 선언 하는 등


이 답변이 +199 답변보다 높은 이유는 무엇입니까? 거의 보지 못했습니다
Evorlor

1

Gradle로 변환하는 것은 Maven과 유사합니다.

Project-> 하위 메뉴 Configure-> Convert to Gradle (STS) Project를 마우스 오른쪽 버튼으로 클릭하십시오.


4
답변은 질문과 관련이 없습니다
Ripon Al Wasim

1
Gradle을 찾아서이 질문을 찾았습니다. 여러 번은 개별 사례에 대한 질문이 없기 때문에 요청한 OS가 아닌 다른 OS에 대한 답변을 추가하는 것이 도움이됩니다. Gradle과 관련하여 나는 도움이된다고 생각하는 것에 대한 새로운 질문을 작성하지 않고 이것을 게시합니다. 감사합니다.
다른
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.