Provided dependencies using Gradle (JetGradle) and Intellij Idea 13

前端 未结 3 1943
死守一世寂寞
死守一世寂寞 2021-02-14 02:12

I have a multiproject build with multiple war modules that depends on one jar module.

Both war and jar modules have dependencies over libraries like Spring, Hibernate an

3条回答
  •  一整个雨季
    2021-02-14 02:44

    I tried the above solution but found a problem. In my scenario I had a sub-project that had the above configuration. The problem was that the transitive dependencies of the sub-project were not being exported in the IntelliJ configuration, which caused the base project to stop compiling.

    I did some digging around and stumbled upon this little gem which fixed the problem.

    https://github.com/gradle/gradle/blob/ccddc438ce09293d84030ebe31668d739c8a228a/gradle/providedConfiguration.gradle

    /**
     * Adds a configuration named 'provided'. 'Provided' dependencies
     * are incoming compile dependencies that aren't outgoing
     * dependencies. In other words, they have no effect on transitive
     * dependency management.
     */
    
    configurations {
        provided
        providedPlusCompile.extendsFrom(compile, provided)
        testCompile.extendsFrom(providedPlusCompile)
    }
    
    sourceSets.main {
        compileClasspath = configurations.providedPlusCompile
    }
    
    plugins.withType(IdeaPlugin) {
        idea.module.scopes.PROVIDED.plus = [ configurations.provided ]
    }
    

提交回复
热议问题