NPE when publishing war to directory


(Cyrill Zadra) #1

Hi

I’m playing around with gradle 3.3 and have some issues publishing a war file to a directory.

Using ‘gradlew uploadArchives’ results in a NullPointerException.

  • What went wrong:
    Execution failed for task ‘:uploadArchives’.

Could not publish configuration 'archives’
java.lang.NullPointerException (no error message)

Stacktrace

Caused by: org.gradle.api.artifacts.PublishException: Could not publish configuration 'archives'
        at org.gradle.api.tasks.Upload.upload(Upload.java:66)
        at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:73)
        at org.gradle.api.internal.project.taskfactory.DefaultTaskClassInfoStore$StandardTaskAction.doExecute(DefaultTaskClassInfoStore.java:141)
        at org.gradle.api.internal.project.taskfactory.DefaultTaskClassInfoStore$StandardTaskAction.execute(DefaultTaskClassInfoStore.java:134)
        at org.gradle.api.internal.project.taskfactory.DefaultTaskClassInfoStore$StandardTaskAction.execute(DefaultTaskClassInfoStore.java:123)
        at org.gradle.api.internal.AbstractTask$TaskActionWrapper.execute(AbstractTask.java:632)
        at org.gradle.api.internal.AbstractTask$TaskActionWrapper.execute(AbstractTask.java:615)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:95)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:76)
        ... 70 more
Caused by: java.lang.NullPointerException
        at org.gradle.util.GFileUtils.mkdirs(GFileUtils.java:296)
        at org.gradle.internal.resource.transport.file.FileResourceConnector.put(FileResourceConnector.java:59)
        at org.gradle.api.internal.artifacts.repositories.resolver.ExternalResourceResolver.put(ExternalResourceResolver.java:328)
        at org.gradle.api.internal.artifacts.repositories.resolver.ExternalResourceResolver.publish(ExternalResourceResolver.java:323)
        at org.gradle.api.internal.artifacts.repositories.resolver.ExternalResourceResolver.publish(ExternalResourceResolver.java:308)
        at org.gradle.api.internal.artifacts.ivyservice.publisher.DefaultIvyDependencyPublisher.publish(DefaultIvyDependencyPublisher.java:45)
        at org.gradle.api.internal.artifacts.ivyservice.publisher.IvyBackedArtifactPublisher.publish(IvyBackedArtifactPublisher.java:78)
        at org.gradle.api.internal.artifacts.ivyservice.IvyContextualArtifactPublisher$1.execute(IvyContextualArtifactPublisher.java:43)
        at org.gradle.api.internal.artifacts.ivyservice.IvyContextualArtifactPublisher$1.execute(IvyContextualArtifactPublisher.java:40)
        at org.gradle.internal.Transformers$4.transform(Transformers.java:169)
        at org.gradle.api.internal.artifacts.ivyservice.DefaultIvyContextManager.withIvy(DefaultIvyContextManager.java:61)
        at org.gradle.api.internal.artifacts.ivyservice.DefaultIvyContextManager.withIvy(DefaultIvyContextManager.java:39)
        at org.gradle.api.internal.artifacts.ivyservice.IvyContextualArtifactPublisher.publish(IvyContextualArtifactPublisher.java:40)
        at org.gradle.api.tasks.Upload.upload(Upload.java:64)
        ... 78 more

My build.gradle file.

apply plugin: 'java’
apply plugin: 'war’
apply plugin: ‘eclipse-wtp’

task wrapper(type: Wrapper) {
description = 'Generates gradlew and gradlew.bat bootstrap scripts’
gradleVersion = ‘3.3’
}

sourceCompatibility = JavaVersion.VERSION_1_7

repositories {
mavenCentral()
}

dependencies {
compile ‘log4j:log4j:1.2.17’

providedCompile ‘javax:javaee-api:7.0’
}

war {
manifest {
attributes ‘Implementation-Title’: rootProject.name ,
‘Implementation-Version’: version,
‘Built-Date’: new Date()
}
}

uploadArchives {
repositories {
flatDir {dirs “file://c/temp/test/” }
}
}

Anybody an idea whats wrong with my gradle setup?

thanks
cyrill


(Cyrill Zadra) #2

I’m still trying to figure out why this NullPointerException occurs.

Tried some different approach by adding an own copy task.

task deployLocal(type: Copy) {
configurations.archives.each( println(it) )

from configurations.archives.allArtifacts*.file 
into("file://c/temp/test/") 

}

Unfortunately same error occurs. Anyone an idea?

gradlew jar deployLocal

thx & regards
Cyrill