IntelliJ IDEA и Gradle: Почему есть 3 модуля на подмодуль?
Меня довольно смущает интеграция с Gradle IntelliJ и сопоставление подпроектов Gradle с модулями IDEA.
- Почему есть 3 модуля для каждого подпроекта gradle (client, client_main и client_test)?
- Есть ли способ избавиться от "родительского" модуля? Каждый раз, когда я удаляю его, моя сборка ломается путаницей.
![Project Structure]()
UPDATE
- Корень содержимого третьего модуля ("сервер") всегда устанавливается на всю папку, как показано ниже. Это означает, что я не могу пометить каталоги в сборке как сгенерированные источники, поскольку по умолчанию они исключены.
![enter image description here]()
Ответы
Ответ 1
Теперь можно отменить выбор этой опции при импорте проекта gradle в IDEA, установленном в 2016.1.2 Ultimate IDE. Сначала перейдите в параметр импорта gradle и выберите файл gradle.
![Диалог импорта проекта]()
Затем в появившемся диалоговом окне убедитесь, что вы отменили выбор, указав создать отдельный модуль для каждого исходного набора. По умолчанию этот параметр выбран. Теперь продолжайте импортировать проект, как обычно.
![Gradle диалог конфигурации]()
И что он, вы можете наслаждаться своим проектом, только один модуль будет создан для каждого подпроекта в проекте с несколькими проектами gradle.
Этот параметр полезен, если у вас есть отдельный подпроект в gradle для тестов, подобных мне. В противном случае метод по умолчанию работает очень хорошо, так как мне было легче запустить модульные тесты.
![Импортированный проект, вид пакета]()
Надеюсь, что это поможет.
Ответ 2
Если вы хотите просто отключить эту опцию для ранее импортированного проекта, вы можете сделать это, отредактировав файл конфигурации idea gradle, расположенный в .idea/gradle.xml.
Добавьте эту строку, которая устанавливает для resolModulePerSourceSet значение false:
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
...
<component name="GradleSettings">
<option name="linkedExternalProjectsSettings">
<GradleProjectSettings>
...
<option name="resolveModulePerSourceSet" value="false" />
</GradleProjectSettings>
</option>
</component>
</project>
А затем обновите проект Gradle.