Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Why intelliJ IDEA dependency scope is "provided" instead of "compile"?

I would like IntelliJ IDEA to have my libraries as "compile" scope instead of "provided" scope. This is a part of my gradle file:

apply plugin: 'java'

sourceCompatibility = 1.8

repositories {
    mavenCentral()
}

dependencies {
    // Logging
    compile 'ch.qos.logback:logback-classic:1.2.1'
    compile 'com.getsentry.raven:raven-logback:7.8.2'

    // BigQuery
    compile 'com.google.api-client:google-api-client:1.20.0'
    compile 'com.google.apis:google-api-services-bigquery:v2-rev227-1.20.0'

    // Configuration management
    compile 'commons-configuration:commons-configuration:1.10'

    //Json
    compile 'org.json:json:20160810'

    //Kafka
    compile "org.apache.kafka:kafka-clients:0.10.1.1"

    testCompile group: 'junit', name: 'junit', version: '4.12'
    testCompile 'org.assertj:assertj-core:3.0.0'
    testCompile 'org.mockito:mockito-all:1.10.19'
}

task wrapper(type: Wrapper) {
    gradleVersion = '3.4'
}

The scope always reverts to "provided" in the dependency tab which is very annoying:

enter image description here

I am running: IntelliJ IDEA 2016.3.4 Build #IC-163.12024.16, built on January 31, 2017 JRE: 1.8.0_112-release-408-b6 x86_64

like image 527
poiuytrez Avatar asked Feb 24 '17 16:02

poiuytrez


People also ask

What is provided scope in IntelliJ?

A scope is a set of files to which various operations apply. Using this dialog, you can define scopes for the various IntelliJ IDEA actions, for example, Find Usages or Code Inspections.

What are dependencies IntelliJ?

IntelliJ IDEA lets you add a Maven dependency to your project. We recommend that you specify the dependency inside your POM. Dependencies that you set up manually inside IntelliJ IDEA module settings will be discarded on the next Maven project reload. Open your POM in the editor.

How do I compile a module in IntelliJ?

Select a module or a project you want to compile and from the main menu, select Build | Build Project ( Ctrl+F9 ). IntelliJ IDEA displays the compilation results in the Review compilation and build output.


1 Answers

It's a known issue in IntelliJ IDEA that is specific to Gradle 3.4:

  • IDEA-167412 Gradle 3.4-rc-1 changes compile dependencies to provided
  • original bug report in the Gradle project with more details
  • comment from the responsible developer regarding "Create Module per source set" option and how Gradle integration works in IntelliJ IDEA

It's already fixed in 2017.1 EAP build.

You can use Gradle 3.3 or older as a workaround until IDEA 2017.1 is released.

like image 174
CrazyCoder Avatar answered Sep 19 '22 08:09

CrazyCoder