mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
POC: Import IDE configuration from external systems
Extract gradle model to plugin
This commit is contained in:
+8
-1
@@ -167,8 +167,15 @@ public class GradleMiscImportingTest extends GradleImportingTestCase {
|
||||
|
||||
@Test
|
||||
public void testCompilerConfigurationSettingsImport() throws Exception {
|
||||
final String pathToPlugin = getClass().getResource("/testCompilerConfigurationSettingsImport/gradle-idea-ext.jar").toString();
|
||||
|
||||
importProject(
|
||||
"apply plugin: 'idea'\n" +
|
||||
"buildscript {\n" +
|
||||
" dependencies {\n" +
|
||||
" classpath files('" + pathToPlugin + "')\n" +
|
||||
" }\n" +
|
||||
"}\n" +
|
||||
"apply plugin: 'org.jetbrains.gradle.plugin.idea-ext'\n" +
|
||||
"idea {\n" +
|
||||
" project.settings {\n" +
|
||||
" compiler {\n" +
|
||||
|
||||
+1
-2
@@ -23,7 +23,6 @@ import org.jetbrains.plugins.gradle.model.DefaultIntelliJSettings
|
||||
import org.jetbrains.plugins.gradle.model.IntelliJProjectSettings
|
||||
import org.jetbrains.plugins.gradle.tooling.ErrorMessageBuilder
|
||||
import org.jetbrains.plugins.gradle.tooling.ModelBuilderService
|
||||
import org.jetbrains.plugins.gradle.tooling.internal.DynamicSettings
|
||||
|
||||
/**
|
||||
* @author Vladislav.Soroka
|
||||
@@ -41,7 +40,7 @@ class IntelliJProjectSettingsBuilder implements ModelBuilderService {
|
||||
ExtensionAware extensionAware = project.plugins.findPlugin(IdeaPlugin.class)?.model?.project as ExtensionAware
|
||||
if (extensionAware) {
|
||||
def object = extensionAware.extensions.findByName("settings")
|
||||
if (object instanceof DynamicSettings && !object.objects.isEmpty()) {
|
||||
if (object) {
|
||||
return new DefaultIntelliJSettings(object.toString())
|
||||
}
|
||||
}
|
||||
|
||||
+1
-2
@@ -24,7 +24,6 @@ import org.jetbrains.plugins.gradle.model.DefaultIntelliJSettings
|
||||
import org.jetbrains.plugins.gradle.model.IntelliJSettings
|
||||
import org.jetbrains.plugins.gradle.tooling.ErrorMessageBuilder
|
||||
import org.jetbrains.plugins.gradle.tooling.ModelBuilderService
|
||||
import org.jetbrains.plugins.gradle.tooling.internal.DynamicSettings
|
||||
|
||||
/**
|
||||
* @author Vladislav.Soroka
|
||||
@@ -42,7 +41,7 @@ class IntelliJSettingsBuilder implements ModelBuilderService {
|
||||
ExtensionAware extensionAware = project.plugins.findPlugin(IdeaPlugin.class)?.model?.module as ExtensionAware
|
||||
if (extensionAware) {
|
||||
def object = extensionAware.extensions.findByName("settings")
|
||||
if (object instanceof DynamicSettings && !(object as DynamicSettings).objects.isEmpty()) {
|
||||
if (object) {
|
||||
return new DefaultIntelliJSettings(object.toString())
|
||||
}
|
||||
}
|
||||
|
||||
-12
@@ -1,6 +1,5 @@
|
||||
import org.gradle.api.internal.project.ProjectInternal
|
||||
import org.gradle.tooling.provider.model.ToolingModelBuilderRegistry
|
||||
import org.jetbrains.plugins.gradle.tooling.internal.DynamicSettings
|
||||
import org.jetbrains.plugins.gradle.tooling.internal.ExtraModelBuilder
|
||||
|
||||
System.setProperty("idea.active", "true")
|
||||
@@ -55,16 +54,5 @@ class JetGradlePlugin implements Plugin<Gradle> {
|
||||
it.register(extraModelBuilderInstance)
|
||||
}
|
||||
}
|
||||
gradle.allprojects { project ->
|
||||
project.pluginManager.withPlugin('idea') { plugin ->
|
||||
def ideaModel = project.extensions.getByName('idea')
|
||||
if (project.parent == null && !ideaModel.project.extensions.findByName('settings')) {
|
||||
ideaModel.project.extensions.create('settings', DynamicSettings)
|
||||
}
|
||||
if (!ideaModel.module.extensions.findByName('settings')) {
|
||||
ideaModel.module.extensions.create('settings', DynamicSettings)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user