IntelliJ-Konwersja projektu/modułu Java do projektu/modułu Maven

Mam projekt na Bitbucket. Podano tylko Źródła. Aby pobrać projekt na nową maszynę, użyłem kontroli wersji > Checkout z kontroli wersji z IntelliJ.

Następnie pyta, czy chciałbym stworzyć nowy projekt z tego źródła, na co odpowiadam Tak. Jak na razie dobrze. Tworzy dla mnie ładny, mały projekt Java, składający się z jednego modułu.

Jednak moim celem w wciągnięciu tego projektu do IntelliJ było przekształcenie go w projekt Maven. Nie mogę znaleźć żadnej opcji, która pozwoli mi to zrobić!

Czy istnieje sposób, aby IntelliJ generował tylko podstawowy pusty pom.xml jak dla mnie z nazwą, artefaktem i repozytorium? Czy istnieje sposób na zaimportowanie projektu jako Projektu Maven? (Ilekroć próbuję stworzyć projekt z istniejącego źródła, daje mi to tylko opcję projektu Java.)

Author: Neil Traft, 2011-10-04

6 answers

Kliknij prawym przyciskiem myszy na module, wybierz "Add Framework support...", oraz sprawdź technologię "Maven".

(tworzy to również pom.xml do modyfikacji.)

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

Pre-IntelliJ 13 to nie przekonwertuje projektu do Maven Standard Directory Layout, 13+ to zrobi.

 650
Author: Dave Newton,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-06-19 15:02:21

Wizualizacja dla tych, którzy z niej korzystają.

Tutaj wpisz opis obrazka

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

 46
Author: Crt,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-03-27 20:15:04
  1. Otwórz' Maven projects ' (zakładka po prawej stronie).
  2. Użyj 'Dodaj Projekty Maven'
  3. Znajdź swój pom.xml
 21
Author: FazoM,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-11-22 13:50:36

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 kilka ważnych ustawień tylko z pom.xml, co może prowadzić do pewnego zamieszania, dotyczy to przynajmniej następujących sekcji:

  1. Ustawienia adnotacji są zmieniane dla modułów
  2. ścieżka wyjściowa kompilatora jest zmieniona dla modułów
  3. Ustawienia zasobów są ignorowane całkowicie i tylko z pom.xml
  4. zależności modułów są pomieszane i muszą być sprawdzone
  5. Ustawienia języka/kodowania są zmieniane dla modułów

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

Dalej niestety nie ma wystarczającego pom.stworzony szablon 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>
    <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>

 3
Author: Thomas,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-04-07 07:25:07

Miałem inny scenariusz, ale i tak wylądowałem na tej odpowiedzi.
Zaimportowałem mój główny folder projektu zawierający wiele projektów Mavena, ale także kilka innych rzeczy używanych w tym projekcie.
IntelliJ rozpoznał pliki Java, ale nie rozwiązał zależności Mavena.

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

 1
Author: John Blackwell,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-03-06 09:49:46

To naprawiło dla mnie: otwórz zakładkę Maven projects po prawej stronie. Dodaj pom, jeśli nie jest jeszcze obecny, a następnie kliknij Odśwież w lewym górnym rogu karty.

 0
Author: ZoltanT,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-08-18 07:54:33