hierynomus / license-gradle-plugin

Manage your license(s)
http://www.javadude.nl
Other
409 stars 114 forks source link

License plugin fails build on Apache Hadoop pom #152

Closed shevek closed 6 years ago

shevek commented 6 years ago

Some of our systems fail with:

> org.xml.sax.SAXParseException; systemId: file:///var/lib/jenkins/.gradle/caches/modules-2/files-2.1/org.apache.hadoop/hadoop-project/3.0.0/ae6eff7a3ee9bc95d204e91e578c4304951566e0/hadoop-project-3.0.0.pom; lineNumber: 1728; columnNumber: 24; The prefix "Xlint" for element "Xlint:-unchecked" is not bound.

* 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.

This is because they wrote:

              <compilerArguments>
                <Xlint/>
                                <Xlint:-unchecked/>
                <Xmaxwarns>9999</Xmaxwarns>
              </compilerArguments>

which is complete garbage, of course, but Normal For Norfolk in the world of Hadoop. My general opinions of the code quality of Hadoop are unprintable and un-broadcastable before the watershed, so could we please make the license plugin not fail the build when I'm obliged to include a Hadoop dependency in a project?

I have no idea why some systems fail and others don't. That sucks. Java versions are the same:

openjdk version "1.8.0_151"
OpenJDK Runtime Environment (build 1.8.0_151-8u151-b12-0ubuntu0.16.04.2-b12)
OpenJDK 64-Bit Server VM (build 25.151-b12, mixed mode)
shevek commented 6 years ago

Problem in 0.11.0. Fixed in 0.14.0. I'll take my unprintable elsewhere. Thank you.

StFS commented 5 years ago

I'm using 0.15.0 and I'm gettin this error on the hadoop-project dependency as well (don't think it's exactly the same issue but similar and related to the same dependency). Here's the error I'm getting:

> Task :drivers:downloadLicenses FAILED
[Fatal Error] hadoop-project-3.2.0.pom:1874:22: Element or attribute do not match QName production: QName::=(NCName':')?NCName.

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':drivers:downloadLicenses'.
> org.xml.sax.SAXParseException; systemId: file:///Users/stefan/.gradle/caches/modules-2/files-2.1/org.apache.hadoop/hadoop-project/3.2.0/453b33dcc6dff890bb48101de300e6bfb48d1a09/hadoop-project-3.2.0.pom; lineNumber: 1874; columnNumber: 22; Element or attribute do not match QName production: QName::=(NCName':')?NCName.

* Try:
Run with --info or --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 ':drivers:downloadLicenses'.
        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:273)
        at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareWorkItemExecutor.execute(DefaultTaskExecutionGraph.java:258)
        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.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.internal.UncheckedException: org.xml.sax.SAXParseException; systemId: file:///Users/stefan/.gradle/caches/modules-2/files-2.1/org.apache.hadoop/hadoop-project/3.2.0/453b33dcc6dff890bb48101de300e6bfb48d1a09/hadoop-project-3.2.0.pom; lineNumber: 1874; columnNumber: 22; Element or attribute do not match QName production: QName::=(NCName':')?NCName.
        at org.gradle.internal.UncheckedException.throwAsUncheckedException(UncheckedException.java:63)
        at org.gradle.internal.UncheckedException.throwAsUncheckedException(UncheckedException.java:40)
        at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:76)
        at org.gradle.api.internal.project.taskfactory.StandardTaskAction.doExecute(StandardTaskAction.java:46)
        at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:39)
        at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:26)
        at org.gradle.api.internal.AbstractTask$TaskActionWrapper.execute(AbstractTask.java:786)
        at org.gradle.api.internal.AbstractTask$TaskActionWrapper.execute(AbstractTask.java:753)
        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)
        ... 31 more
Caused by: org.xml.sax.SAXParseException; systemId: file:///Users/stefan/.gradle/caches/modules-2/files-2.1/org.apache.hadoop/hadoop-project/3.2.0/453b33dcc6dff890bb48101de300e6bfb48d1a09/hadoop-project-3.2.0.pom; lineNumber: 1874; columnNumber: 22; Element or attribute do not match QName production: QName::=(NCName':')?NCName.
        at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
        at org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source)
        at nl.javadude.gradle.plugins.license.LicenseResolver.retrieveLicensesForDependency(LicenseResolver.groovy:191)
        at nl.javadude.gradle.plugins.license.LicenseResolver.this$2$retrieveLicensesForDependency(LicenseResolver.groovy)
        at nl.javadude.gradle.plugins.license.LicenseResolver.retrieveLicensesForDependency(LicenseResolver.groovy:221)
        at nl.javadude.gradle.plugins.license.LicenseResolver.this$2$retrieveLicensesForDependency(LicenseResolver.groovy)
        at nl.javadude.gradle.plugins.license.LicenseResolver.retrieveLicensesForDependency(LicenseResolver.groovy:221)
        at nl.javadude.gradle.plugins.license.LicenseResolver.retrieveLicensesForDependency(LicenseResolver.groovy)
        at nl.javadude.gradle.plugins.license.LicenseResolver.this$2$retrieveLicensesForDependency(LicenseResolver.groovy)
        at nl.javadude.gradle.plugins.license.LicenseResolver$_provideLicenseMap4Dependencies_closure2_closure12.doCall(LicenseResolver.groovy:66)
        at nl.javadude.gradle.plugins.license.LicenseResolver$_provideLicenseMap4Dependencies_closure2_closure12.doCall(LicenseResolver.groovy)
        at nl.javadude.gradle.plugins.license.LicenseResolver$_provideLicenseMap4Dependencies_closure2.doCall(LicenseResolver.groovy:74)
        at nl.javadude.gradle.plugins.license.LicenseResolver.provideLicenseMap4Dependencies(LicenseResolver.groovy:46)
        at nl.javadude.gradle.plugins.license.LicenseResolver$provideLicenseMap4Dependencies.call(Unknown Source)
        at nl.javadude.gradle.plugins.license.DownloadLicenses$_downloadLicenses_closure1.doCall(DownloadLicenses.groovy:96)
        at nl.javadude.gradle.plugins.license.DownloadLicenses$_downloadLicenses_closure1.doCall(DownloadLicenses.groovy)
        at java_util_concurrent_Callable$call.call(Unknown Source)
        at nl.javadude.gradle.plugins.license.DownloadLicenses.downloadLicenses(DownloadLicenses.groovy:106)
        at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:73)
        ... 44 more

I tried excluding that license but I'm still getting this error:

    apply plugin: "license"
    downloadLicenses {
        excludeDependencies = [
            'org.apache.hadoop:hadoop-project:*' // Element or attribute do not match QName production: QName::=(NCName':')?NCName.
        ]
    }
StFS commented 5 years ago

oh wait... nope... I made a boo boo.

I was mixing up the old and new plugins and everything bad.

Stuff is working now... but interestingly, the README says I should be using version 0.15.0 for the plugin but then I kept getting error messages about the plugin not being found. I switched over to using the "latest.release" meta-version and see that it downloads 0.14.0. Don't know if this is a mistake in the documentation or what...

But at any rate, once I did that all was well and I didn't even have to exclude the hadoop-project dependency.