diff --git a/changelog/@unreleased/pr-718.v2.yml b/changelog/@unreleased/pr-718.v2.yml new file mode 100644 index 000000000..ffb575ee6 --- /dev/null +++ b/changelog/@unreleased/pr-718.v2.yml @@ -0,0 +1,5 @@ +type: improvement +improvement: + description: The `baseline-idea` plugin now generates configuration more closely aligned with Gradle defaults. + links: + - https://github.com/palantir/gradle-baseline/pull/718 diff --git a/gradle-baseline-java/src/main/groovy/com/palantir/baseline/plugins/BaselineIdea.groovy b/gradle-baseline-java/src/main/groovy/com/palantir/baseline/plugins/BaselineIdea.groovy index a0f67f447..4fdd4c731 100644 --- a/gradle-baseline-java/src/main/groovy/com/palantir/baseline/plugins/BaselineIdea.groovy +++ b/gradle-baseline-java/src/main/groovy/com/palantir/baseline/plugins/BaselineIdea.groovy @@ -61,7 +61,6 @@ class BaselineIdea extends AbstractBaselinePlugin { } // Configure Idea module - addJdkVersion(ideaModuleModel) markResourcesDirs(ideaModuleModel) moveProjectReferencesToEnd(ideaModuleModel) } @@ -228,29 +227,6 @@ class BaselineIdea extends AbstractBaselinePlugin { return base.appendNode(name, attributes + defaults) } - /** - * Configures JDK and Java language level of the given IdeaModel according to the sourceCompatibility property. - */ - private void addJdkVersion(IdeaModel ideaModel) { - def compileJavaTask = (JavaCompile) project.tasks.findByName('compileJava') - if (compileJavaTask) { - def javaVersion = compileJavaTask.sourceCompatibility - def jdkVersion = 'JDK_' + javaVersion.replaceAll('\\.', '_') - project.logger.debug("BaselineIdea: Configuring IDEA Module for Java version: " + javaVersion) - - if (ideaModel.project != null) { - ideaModel.project.languageLevel = javaVersion - } - - ideaModel.module.jdkName = javaVersion - ideaModel.module.iml.withXml { - it.asNode().component.find { it.@name == 'NewModuleRootManager' }.@LANGUAGE_LEVEL = jdkVersion - } - } else { - project.logger.debug("BaselineIdea: No Java version found in sourceCompatibility property.") - } - } - /** * By default the Idea plugin marks resources dirs as source dirs. */ diff --git a/gradle-baseline-java/src/test/groovy/com/palantir/baseline/BaselineIdeaIntegrationTest.groovy b/gradle-baseline-java/src/test/groovy/com/palantir/baseline/BaselineIdeaIntegrationTest.groovy index ba624c5e8..763df7bf4 100644 --- a/gradle-baseline-java/src/test/groovy/com/palantir/baseline/BaselineIdeaIntegrationTest.groovy +++ b/gradle-baseline-java/src/test/groovy/com/palantir/baseline/BaselineIdeaIntegrationTest.groovy @@ -70,36 +70,6 @@ class BaselineIdeaIntegrationTest extends AbstractPluginTest { with('idea').build() } - def 'Modules for subprojects pick up the correct sourceCompatibility'() { - when: - buildFile << standardBuildFile - buildFile << ''' - sourceCompatibility = 1.6 - '''.stripIndent() - def subproject = multiProject.create(["subproject1", "subproject2"]) - subproject["subproject1"].buildGradle << ''' - apply plugin: 'java' - apply plugin: 'com.palantir.baseline-idea' - sourceCompatibility = 1.7 - '''.stripIndent() - subproject["subproject2"].buildGradle << ''' - apply plugin: 'java' - apply plugin: 'com.palantir.baseline-idea' - sourceCompatibility = 1.8 - '''.stripIndent() - - then: - with('idea').build() - def rootIml = Files.asCharSource(new File(projectDir, projectDir.name + ".iml"), Charsets.UTF_8).read() - rootIml ==~ /(?s).*orderEntry[^\\n]*jdkName="1.6".*/ - def subproject1Iml = Files.asCharSource(new File(projectDir, "subproject1/subproject1.iml"), - Charsets.UTF_8).read() - subproject1Iml ==~ /(?s).*orderEntry[^\\n]*jdkName="1.7".*/ - def subproject2Iml = Files.asCharSource(new File(projectDir, "subproject2/subproject2.iml"), - Charsets.UTF_8).read() - subproject2Iml ==~ /(?s).*orderEntry[^\\n]*jdkName="1.8".*/ - } - def 'Idea project has copyright configuration'() { when: buildFile << standardBuildFile