Лучший способ добавить поддержку Gradle в IntelliJ Project


168

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

Кроме того, наши исходные файлы Java расположены в корне каталога src вместо src / main / java, как это стандартно.

Есть ли способ, которым я могу добавить Gradle в свой проект, который не заставит меня удалить и пересоздать мой проект IntelliJ и не испортит всех остальных, когда они делают Git pull?


2
Чтобы ответить на вопрос о вашем исходном каталоге - вам нужно переопределить исходный каталог по умолчанию с sourceSets . Посмотрите, как мы сделали это в драйвере MongoDB Java: github.com/mongodb/mongo-java-driver/blob/…
Триша

Ответы:


208

Добавить:

build.gradle 

в вашей корневой папке проекта, и используйте плагин, например:

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

и с этим огнем из командной строки:

gradle cleanIdea 

и после этого:

gradle idea

После этого все должно работать


7
при попытке найти решение кто-нибудь сталкивался с ошибкой «Модуль xx» не поддерживается gradle? если да, то как это было решено
Marquis Blount

Спасибо, это сводило меня с ума, и я не мог понять, как заставить IntelliJ обновить зависимости проектов после добавления его в build.gradle.
Амала

Идея gradle (которая зависит от ideaProject, ideaModule, ideaWorkspace) у меня не сработала, так как ideaModule продолжал работать. Вместо этого идея Project Gradle Ideal отлично работала, и проект теперь поддерживает 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 (с использованием плагина), как это определено в Структуре проекта | Артефакты?
ВНИМАНИЕ

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