IntelliJ - Перетворення проекту / модуля Java в проект / модуль Maven


398

У мене є проект на Bitbucket. Здійснюються лише джерела. Щоб відновити проект на новій машині, я використовував Version Control> Checkout from Version Control з IntelliJ.

Потім він запитує, чи хотів би я створити новий проект із цього джерела, на що я відповідаю Так. Все йде нормально. Це створює для мене хороший маленький проект Java, що складається з одного модуля.

Однак моєю метою залучити цей проект до IntelliJ було перетворити його на проект Maven. Я ніде не можу знайти жодного варіанту, який дозволив би мені це зробити!

Чи є спосіб, щоб IntelliJ просто генерував для мене базовий порожній pom.xml з ім'ям, артефактом і сховищем? Або є спосіб імпортувати проект у першу чергу як проект Maven? (Щоразу, коли я намагаюся створити проект із наявного джерела, це дає мені лише можливість проекту Java.)

Відповіді:


760

Клацніть правою кнопкою миші на модулі, виберіть "Додати підтримку фреймворку ..." та перевірте технологію "Maven".

(Це також створює pom.xmlдля вас зміни.)

Якщо ви маєте на увазі додавання вихідних елементів сховища, я думаю, що вам потрібно це зробити вручну - не впевнений.

Перед IntelliJ 13 це не перетворить проект у стандартний макет каталогу Maven , 13+ він буде.


3
Саме те, що я шукав! І так, я мав на увазі додавання за замовчуванням елемента "сховища" maven2 "Central". Але я можу це додати і сам, нічого великого.
Ніл Трафт

1
Класно. Але вам не слід було це додавати; це вже за замовчуванням.
Дейв Ньютон

46
Що станеться, якщо у мене немає такої можливості?

2
які "плагіни"? У мене є 2 Maven штекери (прийшов за замовчуванням у IntelliJ). Досі немає опції "Maven" у Add Frameworks
Нік

1
вибачте за те, що відродили цю стару посаду, але чи є автоматичний спосіб встановити залежність jsf в пом? Пом створюється, але він порожній, я хотів би мати всі належні залежності проекту jsf всередині пам’яті.
МістерСір

76

Візуальний для тих, хто від цього виграє.

введіть тут опис зображення

Після клацання правою кнопкою миші на назві проекту ("тест" у цьому прикладі) виберіть "Додати підтримку фреймворку" та встановіть прапорець "Maven".


Дякую у стільки .....
присмак вишні

31
  1. Відкрийте "Maven projects" (вкладка праворуч).
  2. Використовуйте "Додати проекти Maven"
  3. Знайдіть свій pom.xml

1
Коли у мене був батьківський директор git URL, коли багато підпроектів, підпроекти не були визнані Maven. Ця відповідь допомогла. Щоб зрозуміти, ця функціональність доступна у вікні інструментів Maven.
Сільвестр

Ця відповідь допомогла мені відновити проект 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 entry

  5. І деякі кнопки Next (виберіть JDK, ...)

Тоді проект буде імпортований як модуль Maven.


2

Це вирішило для мене: вкладка «Відкрити проекти Maven» праворуч. Додайте пам’ятку, якщо її ще немає, а потім натисніть кнопку оновлення у верхньому лівому куті вкладки.


0

Найпростіший спосіб - безпосередньо додати проект як проект Maven. Для цього в провіднику проектів ліворуч клацніть правою кнопкою миші файл POM для проекту, внизу контекстного меню ви побачите опцію "Додати як Maven Project" і натисніть на неї. Це автоматично перетворить проект у проект Maven

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.