[java] 기존 Eclipse 프로젝트를 Maven 프로젝트로 변환

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

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



답변

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

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

최신 M2E 버전

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

이전 M2E 버전

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

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

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


답변

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

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

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


답변

나는 같은 문제가 있었고 약 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 플러그인을 수동으로 추가해야합니다.


답변

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

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


답변

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에서 설치할 수 있습니다.


답변

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

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

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

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

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


답변

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