Gradle multiproject define dependency on root project
Asked Answered
P

2

15

I have a multi project gradle build, configured in this way:

root
  |
  |---- projectA
  |
  |---- projectB

I want to declare in the root/build.gradle a dependency for all nested projects, this is the file:

subprojects {
      version = '1.0-SNAPSHOT'
      repositories {
           mavenLocal()
           mavenCentral()
           maven {
               url 'https://repository.jboss.org/nexus/content/groups/public-jboss/'
           }
       }
}

allprojects {
    dependencies {
        compile 'org.projectlombok:lombok:1.12.2'
    }
}

But when I execute the build, I have:

* What went wrong:

A problem occurred evaluating root project 'code'.

No signature of method:
org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler.compile() is applicable for argument types: (java.lang.String) values: [org.projectlombok:lombok:1.12.2]

Possible solutions: module(java.lang.Object)

What I am doing wrong?

Parliamentary answered 8/11, 2013 at 9:49 Comment(0)
H
26

compile method is part of the plugin you've been using (reference).

allprojects {

    apply plugin: 'java'
    //so that we can use 'compile', 'testCompile' for dependencies

    dependencies {
        implementation 'org.projectlombok:lombok:1.12.2'
    }
}
Humboldt answered 8/11, 2013 at 11:0 Comment(2)
Typically you'll want subprojects here, rather than allprojects.Unaccountable
The 'java' plugin has been applied, but it is not compatible with the Android plugins.Cry
P
13

If you got the 'java' plugin has been applied, but it is not compatible with the Android plugins error, try this

subprojects {
    afterEvaluate {
        dependencies {
            implementation "YOUR DEPENDENCIES"
        }
    }
}
Phospholipide answered 23/8, 2019 at 3:22 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.