licensee icon indicating copy to clipboard operation
licensee copied to clipboard

FeatureRequest: Add Configuration For File Directory

Open sdoward opened this issue 3 years ago • 1 comments


As an android developer I want to be able to configure the location of the artefacts.json file So that I can bundle it in my app as part of the ./assets directory


We use the .json file to create a screen that shows the licences to our users. It would be nice if we can easily add that file as part of the build/ci pipeline.

sdoward avatar Oct 16 '22 22:10 sdoward

This is one of the intended use of the library. I don't think the right path is configuring our tasks, but either doing one of two things:

  • created a task which copies the file into a new generated folder which is added a asset-generating task-based output
  • registering our task directly as asset-generating, task-based output (although this would also pick up the text files)

The functionality for registering an asset-generating task is relatively new and I have not experimented with it yet: https://issuetracker.google.com/issues/37085092#comment4

JakeWharton avatar Oct 17 '22 19:10 JakeWharton

You can easily just consume the json file using standard Gradle api:

val myCustomTask = tasks.register("myCustomTask", MyCustomTask::class) {
  val licenseeJsonFile: Provider<RegularFile> = tasks.licensee.flatMap { it.outputDir.file("artifacts.json") }
  myInputFile.set(licenseeJsonFile)
}

But we could also expose the file as a task property:

val myCustomTask = tasks.register("myCustomTask", MyCustomTask::class) {
  val licenseeJsonFile: Provider<RegularFile> = tasks.licensee.flatMap { it.artifactsJsonFile }
  myInputFile.set(licenseeJsonFile)
}

hfhbd avatar Mar 29 '24 11:03 hfhbd

#181 also shows how to bundle the output into assets using the correct mechanisms. That change will make it even easier.

JakeWharton avatar Mar 29 '24 12:03 JakeWharton