Найкращий спосіб додати підтримку Gradle до проекту IntelliJ


168

Я трохи оглянувся і не знайшов найкращого рішення для перетворення існуючого проекту IntelliJ в Gradle. Я працюю в командному середовищі, і зараз ми ділимось .ipr-файлом, оскільки у нас є кілька конфігурацій побудови, які ми відстежуємо. Ми зрештою позбудемося тих, хто виступає за Gradle, але я не можу надто викрутити речі, поки не буде здійснено перетворення Gradle.

Крім того, наші вихідні файли Java розташовані в корені каталогу src замість src / main / java, як це є стандартним.

Чи є спосіб я додати Gradle до свого проекту, який не змусить мене видалити і відтворити мій проект IntelliJ і не накрутить всіх інших, коли вони роблять потяг Git?


2
Щоб відповісти на питання вашого вихідного каталогу - вам потрібно замінити каталог джерел за замовчуванням з sourceSets . Подивіться, як ми це зробили в драйвері Java MongoDB: github.com/mongodb/mongo-java-driver/blob/…
— Trisha

Відповіді:


208

Додати:

build.gradle 

у вашій папці кореневого проекту та використовуйте плагін, наприклад:

apply plugin: 'idea'
//and standard one
apply plugin: 'java'

і з цим вогнем з командного рядка:

gradle cleanIdea 

і після цього:

gradle idea

Після цього все має спрацювати


7
при спробі цього рішення хтось натрапив на помилку "Модуль" xx "не підтримується gradle? якщо так, як це було вирішено
— Marquis Blount

Дякую, це зводило мене з розуму, і я не міг зрозуміти, як змусити IntelliJ оновити залежність проектів після додавання його до build.gradle.
— Amala

ідея gradle (це залежить від ideaProject, ideaModule, ideaWorkspace) не працювала для мене, оскільки ideaModule постійно провалювався. Натомість завдання Gradle ideaProject спрацювало чудово, і проект тепер увімкнено Gradle.
— paranza

Добре, що з цим підходом є проблема. Ви отримаєте помилку "Не можна застосовувати залежності до groovy.lang.closure". Перегляньте замість цього рішення: stackoverflow.com/a/17168175/2517730
— Яр

1
Це дещо застаріло, оскільки ідея плагіну Gradle все ще вдається до файлового ідеального проекту, тоді як проект на базі папок є стандартним та набагато зручнішим
— Xerus

74

Видаляти .imlфайли не потрібно . Дотримуйтесь цього:

  • закрити проект
  • File -> Open... і виберіть новоствореного build.gradle
  • IntelliJ запитає, чи хочете ви:
    • Open Existing Project
    • Delete Existing Project and Import
  • Виберіть другий варіант, і ви закінчите

Як я можу вирішити проблему, що новий проект повинен бути в іншій папці?
— barracuda317

Чи додає це JAR з вашої структури проекту | Бібліотеки як залежність і створюють EAR (використовуючи плагін), як визначено в Project Project | Артефакти?
— NOTiFY

@NOTiFY Я сумніваюся, що це так. Це еквівалентно перевірки проекту з нуля.
— Міхал Кордас

@Michal Kordas Я додав усі залежності вручну, ніде не зайняв часу, який я очікував, і тепер додаю створення WAR, JAR & EAR. Для цього є запит на функцію на JetBrains youtrack.jetbrains.com/issue/IDEABKL-6990
— NOTiFY

46

Інший спосіб, простіший.

Додайте своє

build.gradle

файл у корінь вашого проекту. Закрийте проект. Видаліть * .iml файл вручну. Потім виберіть "Імпортувати проект ...", перейдіть до каталогу проектів, виберіть файл build.gradle та натисніть кнопку ОК.


21

У IntelliJ 2017.2.4 я щойно закрив проект і відновив його, і у мене з’явилося діалогове вікно, яке запитує мене, чи хочу я зв’язатися з build.gradle, який відкрив діалог імпорту проектів Gradle.

Не потрібно видаляти жодні файли або додавати плагін ідеї для build.gradle .


2
Можна підтвердити, що це працює добре. Просто запустіть gradle init у корені проекту, тоді ви отримаєте діалогове вікно наступного разу, коли відкриєте проект.
— Алекс Х.

16

Як майбутня довідка, якщо у вас вже є Mavenпроект, все, що вам потрібно зробити, - це зробити gradle initу вашому каталозі проектів, який генерує build.gradleта інші залежності, а потім зробіть gradle buildу цьому ж каталозі.


2
Цікаво: Створення нових будівель Gradle - Примітки: gradle initможе створювати різні проекти різних типів і навіть знає, як перекласти прості pom.xmlфайли в Gradle.
— Гай Кодер

7

Я використовую версію 12 IntelliJ.

Я вирішив подібну проблему, створивши абсолютно новий проект, і "Перевірка з контролю версій" Злиття двох проектів пізніше було досить просто.


1
  1. Додайте build.gradleу кореневий каталог вашого проекту.

  2. Тоді просто File->Invalidate Caches / Restart

Ось базовий build.gradle для проектів Java:

plugins {
    id 'java'
}

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