Как добавить Грани в Intellij через Gradle - PullRequest
0 голосов
/ 23 марта 2020

Как уже упоминалось в заголовке, я бы хотел добавить 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 работает примерно с половиной аспектов, которые я хотел бы добавить, или некоторые из них добавляются автоматически, но требуют дополнительной настройки. Не говоря уже о том, что разработчики ненавидят ненужные клики, чтобы добавить хотя бы некоторые аспекты.

С уважением, Даниэль

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...