每次重新导入gradle时,IntelliJ都会不断重置Java设置

时间:2019-02-12 19:07:34

标签: java gradle intellij-idea

我发现了一些涉及mvn的类似报告,但Gradle都没有。这是问题。

我转到File-> Project Structure-> Project,然后将Project SDK更改为11,将Project Language Level更改为10。我点击Apply,错误消失了。

我刷新Gradle Project,检查File-> Project Structure-> Project,它的Project SDK设置为8,Project Language Level设置为6。

因此,在阅读了我在stackoverflow上发现的问题之后,这是我的build.gradle。

/*
 * This file was generated by the Gradle 'init' task.
 *
 * This generated file contains a sample Java project to get you started.
 * For more details take a look at the Java Quickstart chapter in the Gradle
 * user guide available at https://docs.gradle.org/5.1.1/userguide/tutorial_java_projects.html
 */

plugins {
    // Apply the java plugin to add support for Java
    id 'java'

    // Apply the application plugin to add support for building an application
    id 'application'

    // Apply the groovy plugin to also add support for Groovy (needed for Spock)
    id 'groovy'

    id 'org.springframework.boot' version '2.1.2.RELEASE'
}

sourceCompatibility = JavaVersion.VERSION_11
targetCompatibility = JavaVersion.VERSION_11

repositories {
    // Use jcenter for resolving your dependencies.
    // You can declare any Maven/Ivy/file repository here.
    jcenter()
    flatDir {
        dirs 'libs'
    }
}

dependencies {
    // This dependency is found on compile classpath of this component and consumers.
    implementation 'com.google.guava:guava:26.0-jre'

    implementation 'org.springframework.boot:spring-boot-starter-web'
    implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
    testImplementation 'org.springframework.boot:spring-boot-devtools'

    implementation 'org.mariadb.jdbc:mariadb-java-client:2.4.0'
    compile fileTree(dir: 'libs', include: ['*.jar'])

    implementation 'org.apache.logging.log4j:log4j-api:2.11.2'
    implementation 'org.apache.logging.log4j:log4j-core:2.11.2'

    compile fileTree(dir: 'libs', include: ['*.jar'])
    testImplementation 'org.springframework.boot:spring-boot-starter-test'

    // Use the latest Groovy version for Spock testing
    testImplementation 'org.codehaus.groovy:groovy-all:2.5.4'

    // Use the awesome Spock testing and specification framework even with Java
    testImplementation 'org.spockframework:spock-core:1.2-groovy-2.5'
    testImplementation 'junit:junit:4.12'
    testImplementation group: 'com.h2database', name: 'h2', version: '1.4.197'
}

// Define the main class for the application
mainClassName = 'manage.App'

apply plugin: 'io.spring.dependency-management'

task deploy(dependsOn: 'build', type: Copy) {
    from bootJar.archivePath
    into "/opt/heavyweight"
}

刷新。仍然会重置我的项目设置。

这是gradle设置:

Gradle Settings

请帮助。

thomas@office-workstation:/opt/gradle4$ bin/gradle -version
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by org.codehaus.groovy.reflection.CachedClass (file:/opt/gradle-4.10.2/lib/groovy-all-2.4.15.jar) to method java.lang.Object.finalize()
WARNING: Please consider reporting this to the maintainers of org.codehaus.groovy.reflection.CachedClass
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release

------------------------------------------------------------
Gradle 4.10.2
------------------------------------------------------------

Build time:   2018-09-19 18:10:15 UTC
Revision:     b4d8d5d170bb4ba516e88d7fe5647e2323d791dd

Kotlin DSL:   1.0-rc-6
Kotlin:       1.2.61
Groovy:       2.4.15
Ant:          Apache Ant(TM) version 1.9.11 compiled on March 23 2018
JVM:          11 (Oracle Corporation 11+28)
OS:           Linux 4.18.0-14-generic amd64

thomas@office-workstation:/opt/gradle4$ 

1 个答案:

答案 0 :(得分:0)

有时可能会发生。项目文件可能会变得非常复杂,特别是如果您正在处理多模块文件。

首先,我更喜欢始终使用Enum常量。

sourceCompatibility = JavaVersion.VERSION_11
targetCompatibility = JavaVersion.VERSION_11

然后备份.idea/modules.xml,将其删除,然后从Gradle Tool窗口重新导入Gradle项目。


最后一步,备份项目*.iml文件,将其删除,按上述步骤重新导入。
如果未重新创建*.iml文件,请重新启动想法。

让我知道是否可行。