I’m sure there is something wrong in my gradle.build (I’m very new at gradle) - it was working until I made a few lines of code change attempting to use the bintray plugin and now I get a NullPointerException running gradle using any task (properties, dependencies etc)
so before I touch a line of code and it works again though I’d post what I can.
Gradle version 2.4
--------- Stack Trace output
FAILURE: Build failed with an exception.
-
What went wrong:
java.lang.NullPointerException (no error message) -
Try:
Run with --info or --debug option to get more log output. -
Exception is:
java.lang.NullPointerException
at org.gradle.api.internal.tasks.DefaultTaskDependency.add(DefaultTaskDependency.java:109)
at org.gradle.api.internal.AbstractTask$11.run(AbstractTask.java:327)
at org.gradle.api.internal.tasks.TaskMutator.mutate(TaskMutator.java:37)
at org.gradle.api.internal.AbstractTask.dependsOn(AbstractTask.java:325)
at com.jfrog.bintray.gradle.BintrayPlugin$_apply_closure2_closure5.doCall(BintrayPlugin.groovy:96)
at com.jfrog.bintray.gradle.BintrayPlugin$_apply_closure2.doCall(BintrayPlugin.groovy:88)
at BuildAdapter1_groovyProxy.projectsEvaluated(Unknown Source)
at org.gradle.messaging.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:35)
at org.gradle.messaging.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24)
at org.gradle.internal.event.BroadcastDispatch.dispatch(BroadcastDispatch.java:87)
at org.gradle.internal.event.BroadcastDispatch.dispatch(BroadcastDispatch.java:31)
at org.gradle.internal.event.BroadcastDispatch.dispatch(BroadcastDispatch.java:87)
at org.gradle.internal.event.BroadcastDispatch.dispatch(BroadcastDispatch.java:31)
at org.gradle.messaging.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:93)
at com.sun.proxy.$Proxy10.projectsEvaluated(Unknown Source)
at org.gradle.messaging.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:35)
at org.gradle.messaging.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24)
at org.gradle.internal.event.BroadcastDispatch.dispatch(BroadcastDispatch.java:87)
at org.gradle.internal.event.BroadcastDispatch.dispatch(BroadcastDispatch.java:31)
at org.gradle.messaging.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:93)
at com.sun.proxy.$Proxy10.projectsEvaluated(Unknown Source)
at org.gradle.initialization.DefaultGradleLauncher.doBuildStages(DefaultGradleLauncher.java:132)
at org.gradle.initialization.DefaultGradleLauncher.doBuild(DefaultGradleLauncher.java:106)
at org.gradle.initialization.DefaultGradleLauncher.run(DefaultGradleLauncher.java:86)
at org.gradle.launcher.exec.InProcessBuildActionExecuter$DefaultBuildController.run(InProcessBuildActionExecuter.java:90)
at org.gradle.tooling.internal.provider.ExecuteBuildActionRunner.run(ExecuteBuildActionRunner.java:28)
at org.gradle.launcher.exec.ChainingBuildActionRunner.run(ChainingBuildActionRunner.java:35)
at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:41)
at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:28)
at org.gradle.launcher.daemon.server.exec.ExecuteBuild.doBuild(ExecuteBuild.java:49)
at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
at org.gradle.launcher.daemon.server.exec.WatchForDisconnection.execute(WatchForDisconnection.java:37)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
at org.gradle.launcher.daemon.server.exec.ResetDeprecationLogger.execute(ResetDeprecationLogger.java:26)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
at org.gradle.launcher.daemon.server.exec.RequestStopIfSingleUsedDaemon.execute(RequestStopIfSingleUsedDaemon.java:34)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
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:120)
at org.gradle.launcher.daemon.server.health.DaemonHealthTracker.execute(DaemonHealthTracker.java:47)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
at org.gradle.launcher.daemon.server.exec.LogToClient.doBuild(LogToClient.java:66)
at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
at org.gradle.launcher.daemon.server.exec.EstablishBuildEnvironment.doBuild(EstablishBuildEnvironment.java:71)
at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
at org.gradle.launcher.daemon.server.health.HintGCAfterBuild.execute(HintGCAfterBuild.java:41)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
at org.gradle.launcher.daemon.server.exec.StartBuildOrRespondWithBusy$1.run(StartBuildOrRespondWithBusy.java:50)
at org.gradle.launcher.daemon.server.DaemonStateCoordinator$1.run(DaemonStateCoordinator.java:246)
at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:54)
at org.gradle.internal.concurrent.StoppableExecutorImpl$1.run(StoppableExecutorImpl.java:40)
BUILD FAILED
Total time: 1.438 secs
---------- gradle.build
plugins {
id "com.jfrog.bintray" version "1.1"
}
apply plugin: "java"
apply plugin: "maven-publish"
apply plugin: 'eclipse'
apply plugin: 'application'
mainClassName = 'org.xmlsh.tools.mustache.cli.main.Main'
applicationName = 'mustache-cli'
apply plugin: 'ivy-publish'
apply plugin: 'maven-publish'
group = "org.xmlsh"
version = 1.0
task wrapper( type: Wrapper ) {
gradleVersion = '2.4'
}
repositories {
mavenLocal()
jcenter()
maven {
url "${awsRepoBucket}/maven2"
credentials(AwsCredentials) {
accessKey "${awsAccessKey}"
secretKey "${awsSecretKey}"
}
}
ivy {
url "${awsRepoBucket}/ivyrepo"
credentials(AwsCredentials) {
accessKey "${awsAccessKey}"
secretKey "${awsSecretKey}"
}
}
}
sourceSets.all { set ->
def jarTask = task("${set.name}Jar", type: Jar) {
baseName = baseName + "-$set.name"
from set.output
}
artifacts {
archives jarTask
}
}
eclipse {
classpath.downloadJavadoc = true
}
compileJava {
sourceCompatibility = 1.8
targetCompatibility = 1.8
}
jar {
manifest {
attributes 'Implementation-Title': 'mustache CLI',
'Implementation-Version': version
}
}
sourceSets {
main
}
List sharedDeps = [
'commons-collections:commons-collections:3.1',
'com.github.spullara.mustache.java:compiler:0.9+',
'com.fasterxml.jackson.core:jackson-databind:2.0+',
'org.apache.logging.log4j:log4j-api:2.+',
'org.apache.logging.log4j:log4j-core:2.+'
]
dependencies {
compile sharedDeps
testCompile 'junit:junit:4.9'
testCompile 'com.github.stefanbirkner:system-rules:1.8.0'
testCompile sourceSets.main.output
}
// custom tasks for creating source/javadoc jars
task sourcesJar(type: Jar, dependsOn: classes) {
classifier = 'sources'
from sourceSets.main.allSource
}
task javadocJar(type: Jar, dependsOn: javadoc) {
classifier = 'javadoc'
from javadoc.destinationDir
}
// add javadoc/source jar tasks as artifacts
artifacts {
archives sourcesJar, javadocJar
}
publishing {
repositories {
maven {
url "${awsRepoBucket}/maven2"
credentials(AwsCredentials) {
accessKey "${awsAccessKey}"
secretKey "${awsSecretKey}"
}
}
ivy {
url "${awsRepoBucket}/ivyrepo"
credentials(AwsCredentials) {
accessKey "${awsAccessKey}"
secretKey "${awsSecretKey}"
}
}
}
publications {
mavenJava(MavenPublication) {
from components.java
artifact sourcesJar
artifact javadocJar
}
}
}
bintray {
user = project.bintrayUser
key = project.bintrayKey
publications = ['mavenJava'] //When uploading Maven-based publication files
dryRun = true //Whether to run this as dry-run, without deploying
publish = false //If version should be auto published after an upload
//Package configuration. The plugin will use the repo and name properties to check if the package already exists. In that case, there's no need to configure the other package properties (like userOrg, desc, etc).
pkg {
repo = 'maven'
name = 'mustache-cli'
userOrg = ''
desc = 'A CLI for mustache.java'
websiteUrl = 'https://github.com/DALDEI/mustache-cli'
issueTrackerUrl = 'https://github.com/DALDEI/mustache-cli/issues'
vcsUrl = 'https://github.com/DALDEI/mustache-cli.git'
licenses = ['BSD Simplified']
labels = ['json', 'mustache', 'mustache.java' , 'java' , 'cli']
publicDownloadNumbers = true
// attributes= ['a': ['ay1', 'ay2'], 'b': ['bee'], c: 'cee'] //Optional package-level attributes
//Optional version descriptor
version {
name = 'release-1.0' //Bintray logical version name
// desc = //Optional - Version-specific description'
// released = //Optional - Date of the version release. 2 possible values: date in the format of 'yyyy-MM-dd'T'HH:mm:ss.SSSZZ' OR a java.util.Date instance
vcsTag = 'release-1.0'
// attributes = ['gradle-plugin': 'com.use.less:com.use.less.gradle:gradle-useless-plugin'] //Optional version-level attributes
//Optional configuration for GPG signing
// gpg {
// sign = true //Determines whether to GPG sign the files. The default is false
// passphrase = 'passphrase' //Optional. The passphrase for GPG signing'
// }
//Optional configuration for Maven Central sync of the version
// mavenCentralSync {
// sync = true //Optional (true by default). Determines whether to sync the version to Maven Central.
// user = 'userToken' //OSS user token
// password = 'paasword' //OSS user password
// close = '1' //Optional property. By default the staging repository is closed and artifacts are released to Maven Central. You can optionally turn this behaviour off (by puting 0 as value) and release the version manually.
// }
}
}
}
No settings.gradle, and there is a gradle.properties that defines the referenced properties
The clues I have is I was changing the bintray DSL {}
to use
publications = [‘mavenJava’] //When uploading Maven-based publication files
and then I copied snippet from a sample app I found which defined the publication
mavenJava(MavenPublication) {
from components.java
artifact sourcesJar
artifact javadocJar
}
I’m sure I dont have the DSL right - any clues on that appreciated, but mostly I wanted to save this crash and post it before it goes away.