Skip to content
This repository has been archived by the owner on Jan 17, 2020. It is now read-only.

Feature Request: feature for adding/changing licenses by hand #78

Closed
shiraji opened this issue Jan 19, 2018 · 3 comments
Closed

Feature Request: feature for adding/changing licenses by hand #78

shiraji opened this issue Jan 19, 2018 · 3 comments

Comments

@shiraji
Copy link
Contributor

shiraji commented Jan 19, 2018

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

@gfx
Copy link
Contributor

gfx commented Jan 19, 2018

As a contributor, I agree with this issue 👍

An APK sometimes includes non-Java libraries including NDK libraries, JavaScript libraries, and so on.

@shiraji
Copy link
Contributor Author

shiraji commented Jan 23, 2018

Got it. I started adding force flag. It seems working well with generating HTML file, but not JSON file. When I run ./gradlew generateLicenseJson I got following error:

% ./gradlew generateLicenseJson                                                                                                                                      [18-01-23 18:39:12]

> Configure project :example 
The CompileOptions.bootClasspath property has been deprecated and is scheduled to be removed in Gradle 5.0. Please use the CompileOptions.bootstrapClasspath property instead.


FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':example:checkLicenses'.
> 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 'java-api' 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 'java-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 'java-api' 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 'java-runtime' but wasn't required.

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

* Get more help at https://help.gradle.org

BUILD FAILED in 0s
1 actionable task: 1 executed

How can I test generating json?

@ghost
Copy link

ghost commented Jan 26, 2018

https://github.com/cookpad/license-tools-plugin/releases/tag/v1.2.0
thanks! 🎉

This issue was closed.
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants