cookpad / license-tools-plugin Goto Github PK
View Code? Open in Web Editor NEWGradle plugin to check library licenses and generate license pages.
License: Other
Gradle plugin to check library licenses and generate license pages.
License: Other
checkLicenses
タスクによって出力された内容をlicenses.ymlに記載し、
再度checkLicenses
のあとにgenerateLicensePage
を実行したところ下記のようなエラーが表示された。
* What went wrong:
Execution failed for task ':app:generateLicensePage'.
> File not found: template/licenses/Answers Terms of Service.html
また、licenseをapache2
に変更しても、
# Licenses not matched with pom.xml in dependencies:
- artifact: com.crashlytics.sdk.android:answers:1.3.6
license: Answers Terms of Service
:app:checkLicenses FAILED
と表示され、pom.xml
と一致しないと怒られてしまう。
- artifact: com.crashlytics.sdk.android:answers:+
name: Android SDK Answers
copyrightHolder: Twitter Inc.
license: Answers Terms of Service
- artifact: com.crashlytics.sdk.android:crashlytics:+
name: Android SDK Crashlytics
copyrightHolder: Twitter Inc.
license: Crashlytics Terms of Service
- artifact: com.crashlytics.sdk.android:crashlytics-core:+
name: Android SDK Crashlytics Core
copyrightHolder: Twitter Inc.
license: Crashlytics Terms of Service
- artifact: io.fabric.sdk.android:fabric:+
name: Android SDK Fabric
copyrightHolder: Twitter Inc.
license: Fabric Software and Services Agreement
カスタムテンプレートもしくは、pom.xml
とのチェックを一時的に無効にできるオプションがあると解決しそう。
#56 from @rockwillj , supported local jar libraries.
Then I partially reverted it, because the :checkLicense
task should not success when missing license. #62
Implement local jar libraries support in other ways.
このライブラリのライセンスを表示させるには、どうしたら良いのでしょうか?
Exampleにも登録されていませんし、登録出来ないのでしょうか?
I have the following entry in my licenses.yml:
- artifact: com.facebook.android:facebook-android-sdk:+
name: Facebook-Android-SDK
copyrightHolder: Facebook
license: Facebook Platform License
licenseUrl: https://github.com/facebook/facebook-android-sdk/blob/master/LICENSE.txt
url: https://github.com/facebook/facebook-android-sdk
If I don't skip this entry I get the following error:
File not found: template/licenses/Facebook Platform License.html
I think this happens because there is no template for this license.
Should I add one or is that a complicated process?
When adding firebase library, the following error occurred.
* What went wrong:
Execution failed for task ':app:checkLicenses'.
> Could not resolve all files for configuration ':app:detachedConfiguration3'.
> Could not find firebase-iid.pom (com.google.firebase:firebase-iid:16.0.0).
Searched in the following locations:
https://jcenter.bintray.com/com/google/firebase/firebase-iid/16.0.0/firebase-iid-16.0.0.pom
It was able to be avoided by replacing google and jcenter in repositories.
allprojects {
repositories {
jcenter()
google()
}
}
allprojects {
repositories {
google()
jcenter()
}
}
It would be nice if the license url could be a part of the .yml and .json generated file (and potentially the .html output, but less likely needed there). It's already available in the pom file, so we can get it at best effort.
I'll put up a PR for this.
Hi the author,
I am working on adding new license files for MPL2 and EPL.
Would it be possible you accept my pull request after I finish it?
Task :app:checkLicenses FAILED
:app:checkLicenses (Thread[Daemon worker Thread 24,5,main]) completed. Took 2.176 secs.
FAILURE: Build failed with an exception.
checkLicenses: missing libraries in licenses.yml
Try:
Run with --debug option to get more log output. Run with --scan to get full insights.
Exception is:
org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':app:checkLicenses'.
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:110)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:77)
at org.gradle.api.internal.tasks.execution.OutputDirectoryCreatingTaskExecuter.execute(OutputDirectoryCreatingTaskExecuter.java:51)
at org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:59)
at org.gradle.api.internal.tasks.execution.ResolveTaskOutputCachingStateExecuter.execute(ResolveTaskOutputCachingStateExecuter.java:54)
at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:59)
at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:101)
at org.gradle.api.internal.tasks.execution.FinalizeInputFilePropertiesTaskExecuter.execute(FinalizeInputFilePropertiesTaskExecuter.java:44)
at org.gradle.api.internal.tasks.execution.CleanupStaleOutputsExecuter.execute(CleanupStaleOutputsExecuter.java:91)
at org.gradle.api.internal.tasks.execution.ResolveTaskArtifactStateTaskExecuter.execute(ResolveTaskArtifactStateTaskExecuter.java:62)
at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:59)
at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:54)
at org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter.execute(ExecuteAtMostOnceTaskExecuter.java:43)
at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:34)
at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.run(EventFiringTaskExecuter.java:51)
at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:300)
at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:292)
at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:174)
at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:90)
at org.gradle.internal.operations.DelegatingBuildOperationExecutor.run(DelegatingBuildOperationExecutor.java:31)
at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter.execute(EventFiringTaskExecuter.java:46)
at org.gradle.execution.taskgraph.LocalTaskInfoExecutor.execute(LocalTaskInfoExecutor.java:42)
at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareWorkItemExecutor.execute(DefaultTaskExecutionGraph.java:277)
at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareWorkItemExecutor.execute(DefaultTaskExecutionGraph.java:262)
at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$ExecutorWorker$1.execute(DefaultTaskPlanExecutor.java:135)
at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$ExecutorWorker$1.execute(DefaultTaskPlanExecutor.java:130)
at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$ExecutorWorker.execute(DefaultTaskPlanExecutor.java:200)
at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$ExecutorWorker.executeWithWork(DefaultTaskPlanExecutor.java:191)
at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$ExecutorWorker.run(DefaultTaskPlanExecutor.java:130)
at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor.process(DefaultTaskPlanExecutor.java:74)
at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph.execute(DefaultTaskExecutionGraph.java:143)
at org.gradle.execution.SelectedTaskExecutionAction.execute(SelectedTaskExecutionAction.java:40)
at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:40)
at org.gradle.execution.DefaultBuildExecuter.access$000(DefaultBuildExecuter.java:24)
at org.gradle.execution.DefaultBuildExecuter$1.proceed(DefaultBuildExecuter.java:46)
at org.gradle.execution.DryRunBuildExecutionAction.execute(DryRunBuildExecutionAction.java:49)
at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:40)
at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:33)
at org.gradle.initialization.DefaultGradleLauncher$ExecuteTasks.run(DefaultGradleLauncher.java:355)
at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:300)
at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:292)
at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:174)
at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:90)
at org.gradle.internal.operations.DelegatingBuildOperationExecutor.run(DelegatingBuildOperationExecutor.java:31)
at org.gradle.initialization.DefaultGradleLauncher.runTasks(DefaultGradleLauncher.java:219)
at org.gradle.initialization.DefaultGradleLauncher.doBuildStages(DefaultGradleLauncher.java:149)
at org.gradle.initialization.DefaultGradleLauncher.executeTasks(DefaultGradleLauncher.java:124)
at org.gradle.internal.invocation.GradleBuildController$1.call(GradleBuildController.java:77)
at org.gradle.internal.invocation.GradleBuildController$1.call(GradleBuildController.java:74)
at org.gradle.internal.work.DefaultWorkerLeaseService.withLocks(DefaultWorkerLeaseService.java:154)
at org.gradle.internal.work.StopShieldingWorkerLeaseService.withLocks(StopShieldingWorkerLeaseService.java:38)
at org.gradle.internal.invocation.GradleBuildController.doBuild(GradleBuildController.java:96)
at org.gradle.internal.invocation.GradleBuildController.run(GradleBuildController.java:74)
at org.gradle.tooling.internal.provider.runner.BuildModelActionRunner.run(BuildModelActionRunner.java:55)
at org.gradle.launcher.exec.ChainingBuildActionRunner.run(ChainingBuildActionRunner.java:35)
at org.gradle.launcher.exec.ChainingBuildActionRunner.run(ChainingBuildActionRunner.java:35)
at org.gradle.tooling.internal.provider.ValidatingBuildActionRunner.run(ValidatingBuildActionRunner.java:32)
at org.gradle.launcher.exec.RunAsBuildOperationBuildActionRunner$3.run(RunAsBuildOperationBuildActionRunner.java:50)
at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:300)
at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:292)
at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:174)
at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:90)
at org.gradle.internal.operations.DelegatingBuildOperationExecutor.run(DelegatingBuildOperationExecutor.java:31)
at org.gradle.launcher.exec.RunAsBuildOperationBuildActionRunner.run(RunAsBuildOperationBuildActionRunner.java:45)
at org.gradle.tooling.internal.provider.SubscribableBuildActionRunner.run(SubscribableBuildActionRunner.java:51)
at org.gradle.launcher.exec.InProcessBuildActionExecuter$1.transform(InProcessBuildActionExecuter.java:47)
at org.gradle.launcher.exec.InProcessBuildActionExecuter$1.transform(InProcessBuildActionExecuter.java:44)
at org.gradle.composite.internal.DefaultRootBuildState.run(DefaultRootBuildState.java:79)
at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:44)
at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:30)
at org.gradle.launcher.exec.BuildTreeScopeBuildActionExecuter.execute(BuildTreeScopeBuildActionExecuter.java:39)
at org.gradle.launcher.exec.BuildTreeScopeBuildActionExecuter.execute(BuildTreeScopeBuildActionExecuter.java:25)
at org.gradle.tooling.internal.provider.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:80)
at org.gradle.tooling.internal.provider.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:53)
at org.gradle.tooling.internal.provider.ServicesSetupBuildActionExecuter.execute(ServicesSetupBuildActionExecuter.java:62)
at org.gradle.tooling.internal.provider.ServicesSetupBuildActionExecuter.execute(ServicesSetupBuildActionExecuter.java:34)
at org.gradle.tooling.internal.provider.GradleThreadBuildActionExecuter.execute(GradleThreadBuildActionExecuter.java:36)
at org.gradle.tooling.internal.provider.GradleThreadBuildActionExecuter.execute(GradleThreadBuildActionExecuter.java:25)
at org.gradle.tooling.internal.provider.ParallelismConfigurationBuildActionExecuter.execute(ParallelismConfigurationBuildActionExecuter.java:43)
at org.gradle.tooling.internal.provider.ParallelismConfigurationBuildActionExecuter.execute(ParallelismConfigurationBuildActionExecuter.java:29)
at org.gradle.tooling.internal.provider.StartParamsValidatingActionExecuter.execute(StartParamsValidatingActionExecuter.java:59)
at org.gradle.tooling.internal.provider.StartParamsValidatingActionExecuter.execute(StartParamsValidatingActionExecuter.java:31)
at org.gradle.tooling.internal.provider.SessionFailureReportingActionExecuter.execute(SessionFailureReportingActionExecuter.java:59)
at org.gradle.tooling.internal.provider.SessionFailureReportingActionExecuter.execute(SessionFailureReportingActionExecuter.java:44)
at org.gradle.tooling.internal.provider.SetupLoggingActionExecuter.execute(SetupLoggingActionExecuter.java:46)
at org.gradle.tooling.internal.provider.SetupLoggingActionExecuter.execute(SetupLoggingActionExecuter.java:30)
at org.gradle.launcher.daemon.server.exec.ExecuteBuild.doBuild(ExecuteBuild.java:67)
at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:122)
at org.gradle.launcher.daemon.server.exec.WatchForDisconnection.execute(WatchForDisconnection.java:37)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:122)
at org.gradle.launcher.daemon.server.exec.ResetDeprecationLogger.execute(ResetDeprecationLogger.java:26)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:122)
at org.gradle.launcher.daemon.server.exec.RequestStopIfSingleUsedDaemon.execute(RequestStopIfSingleUsedDaemon.java:34)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:122)
at org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.call(ForwardClientInput.java:74)
at org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.call(ForwardClientInput.java:72)
at org.gradle.util.Swapper.swap(Swapper.java:38)
at org.gradle.launcher.daemon.server.exec.ForwardClientInput.execute(ForwardClientInput.java:72)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:122)
at org.gradle.launcher.daemon.server.exec.LogAndCheckHealth.execute(LogAndCheckHealth.java:55)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:122)
at org.gradle.launcher.daemon.server.exec.LogToClient.doBuild(LogToClient.java:62)
at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:122)
at org.gradle.launcher.daemon.server.exec.EstablishBuildEnvironment.doBuild(EstablishBuildEnvironment.java:81)
at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:122)
at org.gradle.launcher.daemon.server.exec.StartBuildOrRespondWithBusy$1.run(StartBuildOrRespondWithBusy.java:50)
at org.gradle.launcher.daemon.server.DaemonStateCoordinator$1.run(DaemonStateCoordinator.java:295)
at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:63)
at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:46)
at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:55)
Caused by: org.gradle.api.GradleException: checkLicenses: missing libraries in licenses.yml
at com.cookpad.android.licensetools.LicenseToolsPlugin$_apply_closure1.doCall(LicenseToolsPlugin.groovy:59)
at org.gradle.api.internal.AbstractTask$ClosureTaskAction.execute(AbstractTask.java:739)
at org.gradle.api.internal.AbstractTask$ClosureTaskAction.execute(AbstractTask.java:712)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$1.run(ExecuteActionsTaskExecuter.java:131)
at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:300)
at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:292)
at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:174)
at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:90)
at org.gradle.internal.operations.DelegatingBuildOperationExecutor.run(DelegatingBuildOperationExecutor.java:31)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:120)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:99)
... 112 more
Get more help at https://help.gradle.org
BUILD FAILED in 4s
1 actionable task: 1 executed
08:34:58: Task execution finished 'generateLicensePage'.
There checkLicense is failing because of unused licenses in the yml
# Libraries listed in /Users/ifc/mercari/mercari-android/app/licenses.yml but not in dependencies:
- artifact: xmlpull:xmlpull:+
- artifact: com.thoughtworks.xstream:xstream:+
- artifact: xpp3:xpp3_min:+
I would expect from the updateLicense
task to remove then but it doesn't.
Hey guys,
I have two problems.
First, I created the file licenses.yml
and run the command updateLicense
but when I generated with the
./gradlew generateLicensePage
appeared this error:
> Not enough information for:
- artifact: com.google.firebase:firebase-messaging:17.0.0
name: firebase-messaging
copyrightHolder: #AUTHOR# (or authors: [...])
year: #YEAR# (optional)
- artifact: org.apache.ant:ant:1.8.0
name: org.apache.tools.ant
license: #LICENSE#
copyrightHolder: #AUTHOR# (or authors: [...])
year: #YEAR# (optional)
- artifact: com.android.support:transition:28.0.0
name: Android Transition Support Library
copyrightHolder: #AUTHOR# (or authors: [...])
year: #YEAR# (optional)
- artifact: org.robolectric:robolectric:3.0
name: robolectric
license: #LICENSE#
copyrightHolder: #AUTHOR# (or authors: [...])
year: #YEAR# (optional)
- artifact: org.altbeacon:android-beacon-library:2.12.3
name: android-beacon-library
copyrightHolder: #AUTHOR# (or authors: [...])
year: #YEAR# (optional)
- artifact: javax.annotation:jsr250-api:1.0
name: JSR-250 Common Annotations for the JavaTM Platform
copyrightHolder: #AUTHOR# (or authors: [...])
year: #YEAR# (optional)
- artifact: com.firebase:firebase-jobdispatcher:0.8.5
name: firebase-jobdispatcher
copyrightHolder: #AUTHOR# (or authors: [...])
year: #YEAR# (optional)
When I substitute the #AUTHOR
to something and after I execute the command the second problem appear:
java.io.FileNotFoundException: File not found: template/licenses/Android Software Development Kit License.html
Hi there,
I want to check the lib with my current app, which contains of one app module and two library modules.
I added the apply plugin: 'com.cookpad.android.licensetools' to the app build script (and later on to both library modules).
But it still breaks that it cannot find the licenses for the libraries.
Best regards,
DaRolla
Circleci 1.0 will stop working on August 31, 2018. So we need to upgrade our config before that!
licenses.yml
- name: Font Awesome Icons
copyrightHolder: Fonticons, Inc.
license: CC BY 4.0 License
licenseUrl: https://raw.githubusercontent.com/FortAwesome/Font-Awesome/master/LICENSE.txt
url: https://github.com/FortAwesome/Font-Awesome
forceGenerate: true
I ran generateLicensePage.
Execution failed for task ':app:generateLicensePage'.
> java.io.FileNotFoundException: File not found: template/licenses/CC BY 4.0 License.html
There is not enough template for this license?
SIL OFL 1.1 also is same
Dear all,
we use some content in our app which is a resource file (lottie animation which is a json file). (no Library, aar, jar , etc.)
The content has also a public license which I like to include in the license list.
Is there a way to add manually products with license to the output of the licenseTools ?
Regards
Stephan
Thanks for providing a great plugin :)
Let me report a bug while parsing a license yaml file.
This plugin failed to load a license.yml like below if a library name includes a column with spaces, i.e. " : "
It seems this plugin generates YAML-like text by manual but it's not a valid YAML.
Thanks.
In our project we want to check licenses automatically every time after sync.
I can do that by setting my own gradle task in my Android Studio, but we want the whole team could do the same thing without other setting.
Thank you for making this convenient library!
Caused by: java.lang.ArrayIndexOutOfBoundsException: 2
at com.cookpad.android.licensetools.ArtifactId.parse(ArtifactId.java:27)
at com.cookpad.android.licensetools.LicenseToolsPlugin$_loadDependencyLicenses_closure5.doCall(LicenseToolsPlugin.groovy:121)
at com.cookpad.android.licensetools.LicenseToolsPlugin.loadDependencyLicenses(LicenseToolsPlugin.groovy:110)
at com.cookpad.android.licensetools.LicenseToolsPlugin$loadDependencyLicenses$0.callCurrent(Unknown Source)
at com.cookpad.android.licensetools.LicenseToolsPlugin.initialize(LicenseToolsPlugin.groovy:94)
at com.cookpad.android.licensetools.LicenseToolsPlugin$_apply_closure1.doCall(LicenseToolsPlugin.groovy:26)
at org.gradle.api.internal.AbstractTask$ClosureTaskAction.execute(AbstractTask.java:656)
at org.gradle.api.internal.AbstractTask$ClosureTaskAction.execute(AbstractTask.java:637)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$1.execute(ExecuteActionsTaskExecuter.java:115)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$1.execute(ExecuteActionsTaskExecuter.java:109)
at org.gradle.internal.Transformers$4.transform(Transformers.java:169)
at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:106)
at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:56)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:109)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:90)
... 73 more
command was ./gradlew checkLicenses --stacktrace
can someone help me, i am not getting any smarter by reading the trace
Here is an example of my projects.
ProjA - app, LibComm, libA, exlibA.aar
ProjB - app, LibComm, LibB, exlibB.aar
ProjC - app, LibComm, LibC, exlibA.aar
The LibComm is an Android library module (https://developer.android.com/studio/projects/android-library) and will be used by ProjA, ProjB, ProjC, etc. This library also uses some open source files (directly include the source files, not use .aar or .jar). Currently, this license plug-in won't list the license information of LibComm in the liceses.yaml file as it has no idea where the license information is.
Is there a way for us to specify the license information for LibComm (I don't prefer the .pom scheme for this as we won't public LibComm to remote/local Marven) so we don't have to manually edit the licenses.yaml file of each project that uses LibComm?
Thank you for creating this awesome license plugin.
Hi there,
the html links in the licenses.html are not wrapped if they are too long. So, the webview with the licenses in the android app is scrollable horizontally, which does not look so nice.
It would be great, if the links are wrapped and that the license.html file is only scrollable up and down and fit to the device screen.
Is it possible to add something like this in the css style?
p {
overflow-wrap: break-word;
}
That may solve the problem.
Thank you,
Gabriela
I used a library in NDK that is not listed in build.gradle. And now, I want to add the license to yaml file but received following error:
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':app:checkLicenses'.
> 1
* Try:
Run with --info or --debug option to get more log output.
* Exception is:
org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':app:checkLicenses'.
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:100)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:70)
at org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:63)
at org.gradle.api.internal.tasks.execution.ResolveTaskOutputCachingStateExecuter.execute(ResolveTaskOutputCachingStateExecuter.java:54)
at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:58)
at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:88)
at org.gradle.api.internal.tasks.execution.ResolveTaskArtifactStateTaskExecuter.execute(ResolveTaskArtifactStateTaskExecuter.java:52)
at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:52)
at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:54)
at org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter.execute(ExecuteAtMostOnceTaskExecuter.java:43)
at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:34)
at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker$1.run(DefaultTaskGraphExecuter.java:248)
at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:336)
at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:328)
at org.gradle.internal.progress.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:197)
at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:107)
at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:241)
at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:230)
at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker.processTask(DefaultTaskPlanExecutor.java:124)
at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker.access$200(DefaultTaskPlanExecutor.java:80)
at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker$1.execute(DefaultTaskPlanExecutor.java:105)
at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker$1.execute(DefaultTaskPlanExecutor.java:99)
at org.gradle.execution.taskgraph.DefaultTaskExecutionPlan.execute(DefaultTaskExecutionPlan.java:625)
at org.gradle.execution.taskgraph.DefaultTaskExecutionPlan.executeWithTask(DefaultTaskExecutionPlan.java:580)
at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker.run(DefaultTaskPlanExecutor.java:99)
at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:63)
at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:46)
at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:55)
Caused by: java.lang.ArrayIndexOutOfBoundsException: 1
at com.cookpad.android.licensetools.ArtifactId.parse(ArtifactId.java:24)
at com.cookpad.android.licensetools.LibraryInfo.fromYaml(LibraryInfo.groovy:28)
at com.cookpad.android.licensetools.LibraryInfo$fromYaml.call(Unknown Source)
at com.cookpad.android.licensetools.LicenseToolsPlugin.loadLibrariesYaml(LicenseToolsPlugin.groovy:105)
at com.cookpad.android.licensetools.LicenseToolsPlugin$loadLibrariesYaml.callCurrent(Unknown Source)
at com.cookpad.android.licensetools.LicenseToolsPlugin.initialize(LicenseToolsPlugin.groovy:94)
at com.cookpad.android.licensetools.LicenseToolsPlugin$_apply_closure1.doCall(LicenseToolsPlugin.groovy:27)
at org.gradle.api.internal.AbstractTask$ClosureTaskAction.execute(AbstractTask.java:681)
at org.gradle.api.internal.AbstractTask$ClosureTaskAction.execute(AbstractTask.java:656)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$1.run(ExecuteActionsTaskExecuter.java:122)
at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:336)
at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:328)
at org.gradle.internal.progress.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:197)
at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:107)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:111)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:92)
... 27 more
I guess this is because this plugin cannot find the artifactId in build.gradle file.
Now, I want to add license that is not listed in build.gradle. It's impossible to cover all possible ways to import library, right? So, it would be really helpful that we can add licenses by hand and generate HTML based on the information.
Related: https://twitter.com/chibatching/status/954232965223014401
The report that generates using 'generateLicences' task could not show the OSS version, only showing wildcard.
So it would be a good idea to add configuration options to select either the OSS version or the wildcard version.
If you know the solution to show OSS version, please let me know.
Thanks.
歴史的経緯により{project_root}/scripts/license_tools/data
となっているのでもっとわかりやすい場所に移動する
checkLicenses task failed with com.android.tools.build:gradle:3.0.0-alpha4
and gradle wrapper 4.0.
Gradle plugin 2.3.2 with gradle wrapper 4.0 work well.
So, I think gradle plugin 3.0.0 is not compatible with licens-tools-plugin.
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':app:checkLicenses'.
> Resolving configuration 'releaseCompile' directly is not allowed
* Exception is:
org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':app:checkLicenses'.
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:100)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:70)
at org.gradle.api.internal.tasks.execution.SkipCachedTaskExecuter.execute(SkipCachedTaskExecuter.java:101)
at org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:64)
at org.gradle.api.internal.tasks.execution.ResolveTaskOutputCachingStateExecuter.execute(ResolveTaskOutputCachingStateExecuter.java:54)
at org.gradle.api.internal.tasks.execution.ResolveBuildCacheKeyExecuter.execute(ResolveBuildCacheKeyExecuter.java:60)
at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:58)
at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:88)
at org.gradle.api.internal.tasks.execution.ResolveTaskArtifactStateTaskExecuter.execute(ResolveTaskArtifactStateTaskExecuter.java:52)
at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:52)
at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:54)
at org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter.execute(ExecuteAtMostOnceTaskExecuter.java:43)
at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:34)
at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker$1.run(DefaultTaskGraphExecuter.java:242)
at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:317)
at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:309)
at org.gradle.internal.progress.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:185)
at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:95)
at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:235)
at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:224)
at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker.processTask(DefaultTaskPlanExecutor.java:121)
at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker.access$200(DefaultTaskPlanExecutor.java:77)
at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker$1.execute(DefaultTaskPlanExecutor.java:102)
at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker$1.execute(DefaultTaskPlanExecutor.java:96)
at org.gradle.execution.taskgraph.DefaultTaskExecutionPlan.execute(DefaultTaskExecutionPlan.java:612)
at org.gradle.execution.taskgraph.DefaultTaskExecutionPlan.executeWithTask(DefaultTaskExecutionPlan.java:567)
at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker.run(DefaultTaskPlanExecutor.java:96)
at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:63)
at org.gradle.internal.concurrent.StoppableExecutorImpl$1.run(StoppableExecutorImpl.java:46)
at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:55)
Caused by: java.lang.IllegalStateException: Resolving configuration 'releaseCompile' directly is not allowed
at org.gradle.api.internal.artifacts.configurations.DefaultConfiguration.assertResolvingAllowed(DefaultConfiguration.java:873)
at org.gradle.api.internal.artifacts.configurations.DefaultConfiguration.resolveToStateOrLater(DefaultConfiguration.java:434)
at org.gradle.api.internal.artifacts.configurations.DefaultConfiguration.getResolvedConfiguration(DefaultConfiguration.java:429)
at org.gradle.api.internal.artifacts.configurations.DefaultConfiguration_Decorated.getResolvedConfiguration(Unknown Source)
at org.gradle.internal.metaobject.BeanDynamicObject$MetaClassAdapter.getProperty(BeanDynamicObject.java:228)
at org.gradle.internal.metaobject.BeanDynamicObject.tryGetProperty(BeanDynamicObject.java:171)
at org.gradle.internal.metaobject.CompositeDynamicObject.tryGetProperty(CompositeDynamicObject.java:55)
at org.gradle.internal.metaobject.AbstractDynamicObject.getProperty(AbstractDynamicObject.java:59)
at org.gradle.api.internal.artifacts.configurations.DefaultConfiguration_Decorated.getProperty(Unknown Source)
at com.cookpad.android.licensetools.LicenseToolsPlugin$_resolveProjectDependencies_closure12.doCall(LicenseToolsPlugin.groovy:286)
at com.cookpad.android.licensetools.LicenseToolsPlugin.resolveProjectDependencies(LicenseToolsPlugin.groovy:283)
at com.cookpad.android.licensetools.LicenseToolsPlugin$resolveProjectDependencies$2.callCurrent(Unknown Source)
at com.cookpad.android.licensetools.LicenseToolsPlugin.loadDependencyLicenses(LicenseToolsPlugin.groovy:110)
at com.cookpad.android.licensetools.LicenseToolsPlugin$loadDependencyLicenses$1.callCurrent(Unknown Source)
at com.cookpad.android.licensetools.LicenseToolsPlugin.initialize(LicenseToolsPlugin.groovy:94)
at com.cookpad.android.licensetools.LicenseToolsPlugin$_apply_closure1.doCall(LicenseToolsPlugin.groovy:26)
at org.gradle.api.internal.AbstractTask$ClosureTaskAction.execute(AbstractTask.java:670)
at org.gradle.api.internal.AbstractTask$ClosureTaskAction.execute(AbstractTask.java:651)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$1.run(ExecuteActionsTaskExecuter.java:122)
at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:317)
at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:309)
at org.gradle.internal.progress.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:185)
at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:95)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:111)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:92)
... 29 more
BUILD FAILED in 1m 38s
I am not sure if it only exists in apache2.html,
but the trailing spaces of all the template files must be trimmed.
Will send another PR soon.
The LicenseToolsPlugin.resolveProjectDependencies() method appears to only check for dependencies in subprojects:
Shouldn't this method also include the rootProject dependencies? The rootProject may have it's own dependencies in addition to those in subprojects. Also, if the rootProject dependencies aren't included, the plugin will only show licenses for multi-project builds, and won't work for projects that only have a single build.gradle file.
Hi there,
so the 'gradlew checkLicenses' generated this licenses.yml:
- artifact: com.crashlytics.sdk.android:crashlytics:+
name: Android SDK Crashlytics
copyrightHolder: Google, Inc
license: Crashlytics Terms of Service
licenseUrl: http://try.crashlytics.com/terms/terms-of-service.pdf
But 'gradlew generateLicensePage' throws an error:
Execution failed for task ':app:generateLicensePage'.
> java.io.FileNotFoundException: File not found: template/licenses/Crashlytics Terms of Service.html
Simply removing the line 'license: Crashlytics Terms of Service' didn't help.
Can you please help me?
Cheers,
DaRolla
We want to use the new implementation()
and api()
gradle apis that are available in gradle plugin 3.0.0. https://developer.android.com/studio/build/gradle-plugin-3-0-0-migration.html
Unfortunately this raises the following errors:
> Could not resolve all dependencies for configuration ':example:implementationCopy'.
> Could not resolve project :example-dep.
Required by:
project :example
> Cannot choose between the following configurations of project :example-dep:
- debugApiElements
- debugRuntimeElements
- releaseApiElements
- releaseRuntimeElements
All of them match the consumer attributes:
- Configuration 'debugApiElements':
- Found com.android.build.api.attributes.BuildTypeAttr 'debug' but wasn't required.
- Found com.android.build.gradle.internal.dependency.AndroidTypeAttr 'Aar' but wasn't required.
- Found com.android.build.gradle.internal.dependency.VariantAttr 'debug' but wasn't required.
- Found org.gradle.api.attributes.Usage 'for compile' but wasn't required.
- Configuration 'debugRuntimeElements':
- Found com.android.build.api.attributes.BuildTypeAttr 'debug' but wasn't required.
- Found com.android.build.gradle.internal.dependency.AndroidTypeAttr 'Aar' but wasn't required.
- Found com.android.build.gradle.internal.dependency.VariantAttr 'debug' but wasn't required.
- Found org.gradle.api.attributes.Usage 'for runtime' but wasn't required.
- Configuration 'releaseApiElements':
- Found com.android.build.api.attributes.BuildTypeAttr 'release' but wasn't required.
- Found com.android.build.gradle.internal.dependency.AndroidTypeAttr 'Aar' but wasn't required.
- Found com.android.build.gradle.internal.dependency.VariantAttr 'release' but wasn't required.
- Found org.gradle.api.attributes.Usage 'for compile' but wasn't required.
- Configuration 'releaseRuntimeElements':
- Found com.android.build.api.attributes.BuildTypeAttr 'release' but wasn't required.
- Found com.android.build.gradle.internal.dependency.AndroidTypeAttr 'Aar' but wasn't required.
- Found com.android.build.gradle.internal.dependency.VariantAttr 'release' but wasn't required.
- Found org.gradle.api.attributes.Usage 'for runtime' but wasn't required.
I guess it is related to:
Plugin 3.0.0 includes a new dependency mechanism that automatically matches variants when consuming a library. This means an app's debug variant automatically consumes a library's debug variant, and so on.
See the changes required in the license plugin and example to run into this issue.
https://github.com/cookpad/license-tools-plugin/compare/master...mtiidla:gradle3_a7?expand=1
まだない
"com.github.hierynomus.license" is a license management tool, not a license downloader.
When the project doesn't have some flavor, testImplementation dependencies show up in error message and failed to checkLicenses
.
Reproduction project is here: https://github.com/chibatching/license-tools-bug-reproduce
To avoid it, we have to add flavor to the project.
Very brief investigation, I found the releaseUnitTestApi
, releaseUnitTestCompile
, releaseUnitTestCompileOnly
and releaseUnitTestImplementation
as matched release configuration at
Just a heads-up: I am the developer of ch.netzwerg.release, a plugin which provides all your bumpMajor
, bumpMinor
, bumpPatch
and releng
out of the box. It would be easy to use it in your build and I would be happy to assist if you need help!
Cheers, Rahel
the HTML output is good, but not very configurable.
With an option for JSON output, developers using the library could implement a ListView or RecyclerView to show the output formatted appropriately.
Function to work with dokumi.
You may be able to specify the output destination.
I found a warning is shown when I run ./gradlew tasks
as below. The indicated line is where I call apply plugin: 'com.cookpad.android.licensetools'
. When I remove the line, the warning has gone.
The Task.leftShift(Closure) method has been deprecated and is scheduled to be removed in Gradle 5.0. Please use Task.doLast(Action) instead.
at build_cxnzy1oizz1xepnt3c2kgftri.run(/Users/hiroshi/workspaces/sample-app/app/build.gradle:15)
My Gradle version is like below:
------------------------------------------------------------
Gradle 3.2.1
------------------------------------------------------------
Build time: 2016-11-22 15:19:54 UTC
Revision: 83b485b914fd4f335ad0e66af9d14aad458d2cc5
Groovy: 2.4.7
Ant: Apache Ant(TM) version 1.9.6 compiled on June 29 2015
JVM: 1.8.0_77 (Oracle Corporation 25.77-b03)
OS: Mac OS X 10.11.6 x86_64
I am wondering a code like below might cause this warning as it is deprecated. See http://mrhaki.blogspot.jp/2016/11/gradle-goodness-replacing-operator-for.html for more details.
25 def checkLicenses = project.task('checkLicenses') << {
Probably, the solution would be just replacing <<
with doLast
, which is suggested in a warning message.
Thanks.
When I execute generateLicensePage
, it fails with missing template for template/licenses/Answers Terms of Service.html
. Is there a way to provide this template?
My setup:
build.gradle:
dependencies {
compile('com.crashlytics.sdk.android:crashlytics:2.5.5@aar') {
transitive = true;
}
}
licenses.yml
- artifact: com.crashlytics.sdk.android:answers:+
name: Android SDK Answers
copyrightHolder: Crashlytics, Inc.
license: Answers Terms of Service
The maintenance cost increased because License Templates must have this plugin. (Operation for adding Templates is not prepared.)
So I propose main feature for v2.0.0 that plugin generate html only showing License Page URL.
In the future, we don't need maintain License Templates.
- artifact: com.ibm.icu:icu4j:+
name: ICU4J
copyrightHolder: http://site.icu-project.org/
license: ICU License
licenseUrl: http://raw.githubusercontent.com/unicode-org/icu/master/icu4c/LICENSE.html
url: http://icu-project.org/
- artifact: org.bouncycastle:bcprov-jdk15on:+
name: Bouncy Castle Provider
copyrightHolder: The Legion of the Bouncy Castle Inc.
license: Bouncy Castle Licence
licenseUrl: http://www.bouncycastle.org/licence.html
url: http://www.bouncycastle.org/java.html
This fails to build as
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':app:generateLicensePage'.
> java.io.FileNotFoundException: File not found: template/licenses/ICU License.html
Similarly Bouncy Castle License fails to build
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':app:generateLicensePage'.
> java.io.FileNotFoundException: File not found: template/licenses/Bouncy Castle Licence.html
Is it possible to add these to the template. Thanks
I would like to include RxJava 2 in my app. Though the library itself is licensed by Apache License, its dependency, Reactive Streams (https://github.com/reactive-streams/reactive-streams-jvm) seems licensed by CC0, Creative Commons 1.0 Universal.
Currently, license-tools-plugin don't recognise such license type. So I am wondering if I could add the template to the tool so that it could support CC0.
Let me know your thoughts. I am not sure if we should remark CC0. Plus, I do not know which license should I include (Probably https://creativecommons.org/publicdomain/zero/1.0/legalcode itself?).
Thank you for your support in advance.
./gradlew generateLicensePage
throwing this error -
/gradlew generateLicensePage
Parallel execution is an incubating feature.
Build cache is an incubating feature.
> Configure project :offer
The com.google.protobuf plugin was already applied to the project: :offer and will not be applied again after plugin: android-library
> Configure project :app
WARNING: Configuration 'provided' is obsolete and has been replaced with 'compileOnly'.
It will be removed at the end of 2018
The ConfigurableReport.setDestination(Object) method has been deprecated and is scheduled to be removed in Gradle 5.0. Please use the method ConfigurableReport.setDestination(File) instead.
at build_a7whe4m7sqlxtl9nc5nubr9ny$_run_closure8$_closure54$_closure57.doCall(/Users/iamutkarshtiwari/PROJECT/dinner-app/app/build.gradle:522)
(Run with --stacktrace to get the full stack trace of this deprecation warning.)
WARNING: Configuration 'compile' is obsolete and has been replaced with 'implementation'.
It will be removed at the end of 2018
registerResGeneratingTask is deprecated, use registerGeneratedResFolders(FileCollection)
registerResGeneratingTask is deprecated, use registerGeneratedResFolders(FileCollection)
registerResGeneratingTask is deprecated, use registerGeneratedResFolders(FileCollection)
FAILURE: Build failed with an exception.
* What went wrong:
A problem occurred configuring project ':app'.
> Failed to notify project evaluation listener.
> java.lang.reflect.InvocationTargetException (no error message)
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.
* Get more help at https://help.gradle.org
BUILD FAILED in 1s
For example, the example-no-dep
module create and add dependencies.
And not add to example
module dependencies.
Then ./gradlew checkLicenses
, it failed to missing libraries in example/licenses.yml
, but example does not have showing dependencies.
It caused by project.rootProject.subprojects
in resolveProjectDependencies
method.
I think it is not intended behavior that all module's dependencies requires example/licenses.yml
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.