IntelliJ - Konwertuj projekt / moduł Java na projekt / moduł Maven

398

Mam projekt na Bitbucket. Zaangażowane są tylko źródła. Aby pobrać projekt na nową maszynę, użyłem Kontrola wersji> Kasa z Kontroli wersji z poziomu IntelliJ.

Następnie pyta, czy chciałbym utworzyć nowy projekt z tego źródła, na który odpowiadam Tak. Na razie w porządku. Tworzy dla mnie ładny mały projekt Java, składający się z jednego modułu.

Jednak moim celem w przeniesieniu tego projektu do IntelliJ było przekształcenie go w projekt Maven. Nie mogę znaleźć nigdzie opcji, która pozwoliłaby mi to zrobić!

Czy istnieje sposób, aby IntelliJ wygenerował dla mnie podstawowy pusty plik pom.xml z nazwą i identyfikatorem artefaktu oraz repozytorium? A może istnieje sposób na zaimportowanie projektu jako projektu Maven? (Ilekroć próbuję utworzyć projekt z istniejącego źródła, daje mi to tylko opcję projektu Java).

Neil Traft
źródło

Odpowiedzi:

760

Kliknij moduł prawym przyciskiem myszy, wybierz „Dodaj obsługę frameworka ...” i sprawdź technologię „Maven”.

(Spowoduje to również pom.xmlmodyfikację).

Jeśli masz na myśli dodanie źródłowych elementów repozytorium, myślę, że musisz to zrobić ręcznie - nie jestem pewien.

W wersjach wcześniejszych niż IntelliJ 13 projekt nie zostanie przekonwertowany do standardowego układu katalogów Maven , od 13+.

Dave Newton
źródło
3
Dokładnie tego szukałem! I tak, miałem na myśli dodanie domyślnego elementu centralnego repozytorium maven2. Ale mogę dodać to sam, nic wielkiego.
Neil Traft
1
Fajne. Ale nie powinieneś tego dodawać; to już domyślne.
Dave Newton
46
Co się stanie, jeśli nie mam tej opcji?
2
które „wtyczki”? Mam 2 wtyczki maven (domyślnie dostarczane z IntelliJ). Nadal nie ma opcji „Maven” w Add Frameworks
Nick
1
przepraszam, że ożywiłem ten stary post, ale czy istnieje automatyczny sposób na umieszczenie zależności pom. jsf w pom? Pom jest tworzony, ale jest pusty, chciałbym mieć wszystkie właściwe zależności projektu jsf wewnątrz pom.
MrSir
76

Wizualne dla tych, którzy z tego korzystają.

wprowadź opis zdjęcia tutaj

Po kliknięciu prawym przyciskiem myszy nazwy projektu (w tym przykładzie „test”) wybierz „Dodaj obsługę frameworka” i zaznacz opcję „Maven”.

Crt
źródło
Dziękuję bardzo .....
klapsa wiśnia
31
  1. Otwórz „Projekty Maven” (zakładka po prawej stronie).
  2. Użyj „Dodaj projekty Maven”
  3. Znajdź swój pom.xml
FazoM
źródło
1
Kiedy miałem git URL dyrektora nadrzędnego, gdy wiele podprojektów, podprojekty nie były rozpoznawane jako Maven. Ta odpowiedź pomogła. Aby to wyjaśnić, ta funkcja jest dostępna w oknie narzędzia Maven.
Sylvester
Ta odpowiedź pomogła mi ponownie powiązać projekt Gradle z powrotem do Maven. Wystarczyło go odłączyć (użyj znaku minus) w analogicznym menu Gradle.
vphilipnyc
6

Chcę dodać ważną wskazówkę, że konwersja takiego projektu może mieć skutki uboczne, które są zauważalne, gdy masz większy projekt. Wynika to z faktu, że Intellij Idea (2017) pobiera niektóre ważne ustawienia tylko z pliku pom.xml, co może prowadzić do pewnych nieporozumień, dotyczy to przynajmniej następujących sekcji:

  1. Ustawienia adnotacji zostały zmienione dla modułów
  2. Ścieżka wyjściowa kompilatora została zmieniona dla modułów
  3. Ustawienia zasobów są całkowicie ignorowane i pobierane tylko z pom.xml
  4. Zależności modułów są pomieszane i należy je sprawdzić
  5. Ustawienia języka / kodowania zostały zmienione dla modułów

Wszystkie te punkty wymagają przeglądu i dostosowania, ale po tym działa jak urok.

Co więcej, niestety nie ma wystarczającego szablonu pom.xml, dodałem przykład, który może pomóc rozwiązać większość problemów.

<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>

Edytuj 2019:

  • Dodano skanowanie zasobów rekurencyjnych
  • Dodano specyfikację katalogu, która może być ważna, aby uniknąć pomyłek związanych z IDEA w zakresie struktury katalogu głównego treści
Tomasz
źródło
3

Miałem inny scenariusz, ale wciąż trafiłem na tę odpowiedź.
Zaimportowałem folder głównego projektu zawierający wiele projektów Maven, ale także kilka innych rzeczy używanych w tym projekcie.
IntelliJ rozpoznał pliki Java, ale nie rozwiązał zależności Maven.

Naprawiłem to, wykonując kliknięcie prawym przyciskiem myszy na każdym pom, a następnie „Dodaj jako projekt maven”

John Blackwell
źródło
3

Rozwiązałem ten sam problem, wykonując poniższe kroki:

  1. Plik> Zamknij projekt

  2. Importuj projekt

  3. Wybierz projekt za pomocą wyskakującego okienka pliku systemowego

  4. Zaznacz przycisk opcji „Importuj projekt z modelu zewnętrznego” i wybierz pozycję Maven

  5. I niektóre przyciski Dalej (wybierz JDK, ...)

Następnie projekt zostanie zaimportowany jako moduł Maven.

Walid Ammou
źródło
2

Naprawiłem to dla mnie: Otwórz kartę projektów maven po prawej stronie. Dodaj pompę, jeśli jeszcze nie jest dostępna, a następnie kliknij odśwież w lewym górnym rogu zakładki.

Zoltan T.
źródło
0

Najprostszym sposobem jest bezpośrednie dodanie projektu jako projektu Maven. Aby to zrobić, w eksploratorze projektów po lewej kliknij prawym przyciskiem myszy plik POM dla projektu, w dolnej części menu kontekstowego zobaczysz opcję o nazwie „Dodaj jako projekt Maven”, kliknij ją. Spowoduje to automatyczną konwersję projektu do projektu Maven

Testilla
źródło