IntelliJ-Java 프로젝트 / 모듈을 Maven 프로젝트 / 모듈로 변환


398

Bitbucket에 대한 프로젝트가 있습니다. 소스 만 커밋됩니다. 새 시스템으로 프로젝트를 검색하기 위해 IntelliJ 내에서 Version Control> Version Control에서 Checkout을 사용했습니다.

그런 다음이 소스에서 새 프로젝트를 만들지 여부를 묻습니다. 여태까지는 그런대로 잘됐다. 단일 모듈로 구성된 멋진 Java 프로젝트를 만듭니다.

그러나이 프로젝트를 IntelliJ로 가져 오는 목표는 프로젝트를 Maven 프로젝트로 바꾸는 것이 었습니다. 내가 할 수있는 옵션을 찾을 수 없습니다!

IntelliJ가 이름과 artifactId 및 저장소를 사용하여 기본 빈 pom.xml을 생성하도록 할 수 있습니까? 아니면 먼저 프로젝트를 Maven 프로젝트로 가져 오는 방법이 있습니까? (기존 소스에서 프로젝트를 만들려고 할 때마다 Java 프로젝트 옵션 만 제공합니다.)

답변:


760

모듈을 마우스 오른쪽 버튼으로 클릭하고 "프레임 워크 지원 추가 ..."를 선택한 다음 "Maven"기술을 확인하십시오.

(이것은 또한 pom.xml수정할 수 있도록 만듭니다 .)

소스 리포지토리 요소를 추가하려는 경우 수동으로해야한다고 생각합니다.

Pre-IntelliJ 13 이것은 프로젝트를 Maven 표준 디렉토리 레이아웃으로 변환하지 않으며 13+ 이상입니다.


3
정확히 내가 찾던 것! 그리고 예, 기본 maven2 "Central"저장소 요소를 추가하는 것을 의미했습니다. 그러나 나는 그것을 직접 추가 할 수 있습니다.
Neil Traft

1
멋있는. 하지만 추가 할 필요는 없습니다. 이미 기본값입니다.
Dave Newton

46
해당 옵션이 없으면 어떻게됩니까?

2
어떤 "플러그인"? 2 개의 maven 플러그가 있습니다 (IntelliJ에서 기본값으로 제공됨). 프레임 워크 추가에 여전히 "Maven"옵션이 없음
Nick

1
이 오래된 게시물을 되살려 서 죄송하지만 jsf 의존성을 pom에 넣는 자동 방법이 있습니까? pom이 생성되었지만 비어 있습니다. pom 안에 jsf 프로젝트의 모든 적절한 종속성을 갖고 싶습니다.
MrSir

76

혜택을받는 사람들을위한 비주얼.

여기에 이미지 설명을 입력하십시오

프로젝트 이름 (이 예에서는 "test")을 마우스 오른쪽 단추로 클릭 한 후 "프레임 워크 지원 추가"를 선택하고 "Maven"옵션을 확인하십시오.


너무 감사합니다 .....
smack 벚나무

31
  1. 'Maven 프로젝트'를 엽니 다 (오른쪽 탭).
  2. 'Maven 프로젝트 추가'사용
  3. pom.xml 찾기

1
하위 프로젝트가 많을 때 부모 디렉터 git URL이 있었을 때 하위 프로젝트는 Maven으로 인식되지 않았습니다. 이 답변이 도움이되었습니다. 명확하게하기 위해 Maven Tool 창에서이 기능을 사용할 수 있습니다.
Sylvester

이 답변을 통해 Gradle 프로젝트를 다시 Maven에 다시 연결할 수있었습니다. 유사한 Gradle 메뉴에서 연결을 끊어야했습니다 (빼기 기호 사용).
vphilipnyc

6

이와 같은 프로젝트를 변환하면 더 큰 프로젝트가있을 때 눈에 띄는 부작용이있을 수 있다는 중요한 힌트를 추가하고 싶습니다. Intellij Idea (2017)가 pom.xml에서만 중요한 설정을 가져 와서 약간의 혼란을 초래할 수 있기 때문에 다음 섹션에 영향을 미칩니다.

  1. 모듈에 대한 주석 설정이 변경되었습니다.
  2. 모듈의 컴파일러 출력 경로가 변경되었습니다.
  3. 리소스 설정은 완전히 무시되며 pom.xml에서만 가져옵니다.
  4. 모듈 종속성이 엉망이되어 점검해야합니다
  5. 모듈의 언어 / 인코딩 설정이 변경되었습니다.

이 모든 사항을 검토하고 조정해야하지만 이후에는 매력처럼 작동합니다.

더 불행히도 충분한 pom.xml 템플릿이 생성되지 않았으므로 대부분의 문제를 해결하는 데 도움이되는 예제를 추가했습니다.

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>Name</groupId>
<artifactId>Artifact</artifactId>
<version>4.0</version>
<properties>
    <!-- Generic properties -->
    <java.version>1.8</java.version>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
</properties>
<dependencies>
    <!--All dependencies to put here, including module dependencies-->
</dependencies>
<build>
    <directory>${project.basedir}/target</directory>
    <outputDirectory>${project.build.directory}/classes</outputDirectory>
    <testOutputDirectory>${project.build.directory}/test-classes</testOutputDirectory>
    <sourceDirectory>${project.basedir}/src/main/java</sourceDirectory>
    <testSourceDirectory> ${project.basedir}/src/test/java</testSourceDirectory>

    <resources>
        <resource>
            <directory>${project.basedir}/src/main/java</directory>
            <excludes>
                <exclude>**/*.java</exclude>
            </excludes>
        </resource>
        <resource>
            <directory>${project.basedir}/src/main/resources</directory>
            <includes>
                <include>**/*</include>
            </includes>
        </resource>
    </resources>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.5.1</version>
            <configuration>
                <annotationProcessors/>
                <source>${java.version}</source>
                <target>${java.version}</target>
            </configuration>
        </plugin>
    </plugins>
</build>

2019 수정 :

  • 재귀 리소스 스캔 추가
  • IDEA가 컨텐츠 루트 구조를 폐기하는 혼동을 피하기 위해 중요 할 수있는 디렉토리 스펙 추가

3

나는 다른 시나리오를 가지고 있었지만 여전히이 대답에 착륙했습니다.
여러 Maven 프로젝트가 들어있는 루트 프로젝트 폴더 와이 프로젝트에 사용 된 다른 것들을 가져 왔습니다.
IntelliJ는 Java 파일을 인식했지만 Maven 종속성을 해결하지 못했습니다.

각 폼을 마우스 오른쪽 버튼으로 클릭하고 "maven 프로젝트로 추가"를 수행하여이 문제를 해결했습니다.


3

아래 단계를 수행하여 동일한 문제를 해결했습니다.

  1. 파일> 프로젝트 닫기

  2. 프로젝트 가져 오기

  3. 시스템 파일 팝업을 통해 프로젝트를 선택하십시오

  4. "외부 모델에서 프로젝트 가져 오기"단일 선택 단추를 선택하고 Maven 항목을 선택하십시오.

  5. 그리고 일부 다음 버튼 (JDK 선택, ...)

그런 다음 프로젝트를 Maven 모듈로 가져옵니다.


2

이 문제는 나를 위해 수정되었습니다. 오른쪽에 maven 프로젝트 열기 탭. 폼이 아직 없으면 추가 한 다음 탭 왼쪽 상단에서 새로 고침을 클릭하십시오.


0

가장 쉬운 방법은 프로젝트를 Maven 프로젝트로 직접 추가하는 것입니다. 이렇게하려면 왼쪽의 프로젝트 탐색기에서 프로젝트의 POM 파일을 마우스 오른쪽 버튼으로 클릭하고 상황에 맞는 메뉴 하단에 'Add as Maven Project'라는 옵션이 표시됩니다. 이것은 프로젝트를 Maven 프로젝트로 자동 변환합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.