Как уже упоминалось в заголовке, я бы хотел добавить Factes к Intellij через скрипты gradle buildscripts build.gradle
. В документации говорится о применении плагина idea
и взаимодействии с заданными объектами. https://docs.gradle.org/5.5.1/javadoc/org/gradle/plugins/ide/idea/model/IdeaModule.html
Некоторые другие пользователи уже отвечали на этот вопрос в прошлом: например, добавив фасет пружины: https://mrhaki.blogspot.com/2016/03/gradle-goodness-add-spring-facet-to.html
и даже Исходный код gradle
s содержит такой пример: https://github.com/gradle/gradle/blob/b189979845c591d8c4a0032527383df0f6d679b2/subprojects/ide/src/main/java/org/gradle/plugins/ide/idea/internal/IdeaScalaConfigurer.java#L205 -L219
, но тестирование с помощью gradle 5.5.1 и Intellij 2019.3.3 не показывает ожидаемых результатов. По крайней мере, есть большая разница в вызове gradlew idea
и импорте проекта непосредственно в IDE (что обычно делают пользователи).
Я попытался отследить, почему ничего не происходит, и написал пару отпечатков. на мой build.gradle
:
idea {
module {
println "Module " + delegate
iml {
println "Module iml: " + iml + " (to: " + iml.getGenerateTo() + ")"
withXml { XmlProvider xmlFile ->
println "Module withXml: " + xmlFile
}
whenMerged {
println "Module beforeMerged " + delegate
}
beforeMerged { module ->
println "Module beforeMerged " + delegate
}
}
}
println "Project " + getProject()
workspace {
println "Workspace " + delegate
println "Workspace iws: " + getIws()
}
}
вывод довольно удручающий:
Module org.gradle.plugins.ide.idea.model.IdeaModule_Decorated@3743f47c
Module iml: org.gradle.plugins.ide.idea.model.IdeaModuleIml@97f67b0 (to: C:\Java\Project\Module)
Project null
Workspace org.gradle.plugins.ide.idea.model.IdeaWorkspace@8475ce8
Workspace iws: null
Нет ни одного звонка на withXml
(что мне на самом деле нужно) или beforeMerged
или whenMerged
, некоторые объекты конфигурации даже не существуют, но null
.
Мой следующий тест - записать фасеты непосредственно в виде файла в структуру каталогов .idea
, но это выглядит как уже устарелый решение.
Я пропустил другой плагин Idea или как мы должны добавлять аспекты самостоятельно? Автоматическое определение структуры c работает примерно с половиной аспектов, которые я хотел бы добавить, или некоторые из них добавляются автоматически, но требуют дополнительной настройки. Не говоря уже о том, что разработчики ненавидят ненужные клики, чтобы добавить хотя бы некоторые аспекты.
С уважением, Даниэль