in build-tools/src/main/java/co/elastic/otel/android/compilation/tools/plugins/subprojects/JarNoticeProviderPlugin.java [20:62]
public void apply(Project project) {
super.apply(project);
List<Configuration> runtimeClasspath = getRuntimeConfigurations(project, project.getConfigurations().getByName("runtimeClasspath"));
TaskProvider<DependenciesHasherTask> dependenciesHasher = project.getTasks().register("dependenciesHasher", DependenciesHasherTask.class, task -> {
task.getRuntimeDependencies().set(runtimeClasspath);
task.getOutputFile().set(project.getLayout().getBuildDirectory().file(task.getName() + "/" + "dependencies_hash.txt"));
});
TaskProvider<PomLicensesCollectorTask> pomLicensesFinder = project.getTasks().register("dependenciesLicencesFinder", PomLicensesCollectorTask.class, task -> {
task.getRuntimeDependencies().set(runtimeClasspath);
task.getLicensesFound().set(project.getLayout().getBuildDirectory().file(task.getName() + "/licenses.txt"));
task.getManualLicenseMapping().set(licensesConfig.getManualMappingFile().getAsFile());
});
TaskProvider<NoticeFilesCollectorTask> noticeCollector = project.getTasks().register("noticeFilesCollector", NoticeFilesCollectorTask.class, task -> {
task.getRuntimeDependencies().set(runtimeClasspath);
task.getOutputDir().set(project.getLayout().getBuildDirectory().dir(task.getName()));
});
TaskProvider<NoticeMergerTask> noticeFilesMerger = project.getTasks().register("noticeFilesMerger", NoticeMergerTask.class, task -> {
task.getNoticeFilesDir().set(noticeCollector.flatMap(NoticeFilesCollectorTask::getOutputDir));
task.getOutputFile().set(project.getLayout().getBuildDirectory().file(task.getName() + "/" + "mergedNotice.txt"));
});
TaskProvider<CreateDependenciesListTask> licensesDependencies = project.getTasks().register("createDependenciesList", CreateDependenciesListTask.class, task -> {
task.getLicensesFound().set(pomLicensesFinder.flatMap(PomLicensesCollectorTask::getLicensesFound));
task.getOutputFile().set(project.getLayout().getBuildDirectory().file(task.getName() + "/" + "licensed_dependencies.txt"));
});
TaskProvider<CreateNoticeTask> createNoticeFileTask = project.getTasks().register(TASK_CREATE_NOTICE_FILE_NAME, CreateNoticeTask.class, task -> {
task.getMergedNoticeFiles().from(noticeFilesMerger.flatMap(NoticeMergerTask::getOutputFile));
task.getLicensedDependencies().set(licensesDependencies.flatMap(CreateDependenciesListTask::getOutputFile));
task.getFoundLicensesIds().set(pomLicensesFinder.flatMap(PomLicensesCollectorTask::getLicensesFound));
task.getDependenciesHashFile().set(dependenciesHasher.flatMap(DependenciesHasherTask::getOutputFile));
task.getOutputDir().set(project.getLayout().getProjectDirectory().dir("src/main/resources"));
});
project.getTasks().named("processResources").configure(task -> task.mustRunAfter(createNoticeFileTask));
project.getTasks().register(TASK_VERIFY_NOTICE_FILE_NAME, DependenciesVerifierTask.class, task -> {
task.getDependenciesHashFile().set(dependenciesHasher.flatMap(DependenciesHasherTask::getOutputFile));
});
setUpLicensedDependencies(project, pomLicensesFinder);
setUpNoticeFilesProvider(project, noticeCollector);
}