Open tfcporciuncula opened 3 years ago
These issues are hard to debug since the gradle warning is very specific but not very helpful.
I had this with some newer versions of the plugin. Does it fix anything to explicitly request android specific configs in the licenseReport block for all modules?
subprojects {
apply plugin: "com.github.jk1.dependency-license-report"
licenseReport{
configurations = arrayOf("releaseRuntimeClasspath")
}
}
In case it's helpful, here's how I worked around this issue with a React Native project:
configurations = ALL
(I also used renderers = [new JsonReportRenderer()]
), which will produce output for all dependencies, to be filtered./gradlew app:dependencies --configuration releaseRuntimeClasspath
Hello
In case a project having submodules the plugin fails as identified by this open bug .
Example in build the build.gradle file we have as below-
implementation project(path: ':ProjectFolder:SubProject')
Getting the above mentioned error in the open bug.
Well, is there any update or feature progress on this, would love to hear about that.
Also any hint, how it can be fixed. Would be glad to know about it.
Possible fix here :
@brsaylor2 do you remember on which gradle version you were ? it's not working for me on 6.7 with configurations = ALL
@maxaggedon I think it was 6.2. The configurations = ALL
workaround stopped working for me at some point (either due to upgrading gradle to 7.3.3 or some other change in the project), and I had to find another workaround:
licenseReport {
...
configurations = ['releaseRuntimeClasspath']
}
allprojects {
// UNCOMMENT THIS BEFORE RUNNING generateLicenseReport
// def artifactType = Attribute.of('artifactType', String)
// dependencies.attributesSchema {
// attribute(artifactType)
// }
// configurations {
// releaseRuntimeClasspath {
// attributes {
// // help gradle choose a variant:
// attribute(artifactType, 'android-classes-jar')
// }
// }
// }
}
Relevant docs:
Thanks a lot @brsaylor2 for you detailed reply ! I managed to make it work also on gradle 6.7. My problem was with react-native-screens
, so I tried uninstalling it and reinstalling it. And it worked...
is there any update on this i still have the same problem using gradle 7.6 and agp 7.2.2 or gradle 8 and agp .
This seems to work for the current android plugin: https://github.com/jaredsburrows/gradle-license-plugin
I created a minimum reproducible example here: https://github.com/tfcporciuncula/dependency-license-report-android
It's basically a blank new project with an extra library module. It was created on Android Studio 4.1.1 with Android Gradle Plugin 4.1.1. It's using Gradle 6.5, which is the default version for a new Android project right now with AS 4.1.1, but the same error happens on Gradle 6.7.1 -- there's a separate branch with Gradle updated.
I have a regular
app
module and a separatelib
module which is a dependency ofapp
. This is the error I get when running./gradlew generateLicenseReport
:This is the exception output when I run with
--stacktrace
:I've tried different
configurations
value (releaseRuntimeClasspath
,debugRuntimeClasspath
,releaseCompileClasspath
,debugCompileClasspath
) but they all lead to the same error. If I don't set a value forconfigurations
or go with the default value (runtimeClasspath
), there's no error but the report is empty. There's basically two ways to make the plugin work:lib
fromapp
as a dependency (which wouldn't make sense in a real project).implementation project(':lib')
toimplementation project(path: ':lib', configuration: 'default')
.I'm not a Gradle expert, so I'm honestly not sure what's the implication of passing a
default
configuration
there, but I'd hope there's a way for the plugin to work without the need for that change. I decided to try this after reading this other issue, but I thought it would make sense to open a separate and more specific issue about this.