'pomFile not set for publication' error when using maven-publish in init.gradle in afterProject {}

Hi folks,

A similar question has been asked here:

http://forums.gradle.org/gradle/topics/apply_maven_publish_plugin_from_init_script

However, I can get around that issue by applying the plugin in the afterProject block of init.gradle, like so:

http://pastebin.com/JqSKVq6Q

However, when I attempt to run gradle :artifactoryPublish on a simple project, I instead get:

Caused by: java.lang.IllegalStateException: pomFile not set for publication
 at org.gradle.api.publish.maven.internal.publication.DefaultMavenPublication.getPomFile(DefaultMavenPublication.java:180)
 at org.gradle.api.publish.maven.internal.publication.DefaultMavenPublication.asNormalisedPublication(DefaultMavenPublication.java:175)
 at org.jfrog.gradle.plugin.artifactory.task.BuildInfoPublicationsTask.getArtifactDeployDetails(BuildInfoPublicationsTask.java:213)
 at org.jfrog.gradle.plugin.artifactory.task.BuildInfoPublicationsTask_Decorated.getArtifactDeployDetails(Unknown Source)
 at org.jfrog.gradle.plugin.artifactory.task.BuildInfoPublicationsTask.collectDescriptorsAndArtifactsForUpload(BuildInfoPublicationsTask.java:154)
 at org.jfrog.gradle.plugin.artifactory.task.BuildInfoBaseTask.prepareAndDeploy(BuildInfoBaseTask.java:267)
 at org.jfrog.gradle.plugin.artifactory.task.BuildInfoBaseTask.collectProjectBuildInfo(BuildInfoBaseTask.java:365)
 at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:63)
 at org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$StandardTaskAction.doExecute(AnnotationProcessingTaskFactory.java:219)
 at org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$StandardTaskAction.execute(AnnotationProcessingTaskFactory.java:212)
 at org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$StandardTaskAction.execute(AnnotationProcessingTaskFactory.java:201)
 at org.gradle.api.internal.AbstractTask$TaskActionWrapper.execute(AbstractTask.java:533)
 at org.gradle.api.internal.AbstractTask$TaskActionWrapper.execute(AbstractTask.java:516)
 at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:80)
 at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:61)
 ... 46 more

The same configuration inline (in the project’s build.gradle) works fine, I get publishing happening correctly. Note that I am using the jfrog artifactory plugin, but I don’t know if that is the cause, it seems to just delegate on to maven-publish.

Any ideas on what I’m missing? This is against Gradle 1.11. Let me know if you need any more information.

I’ve also tried variations like placing it in projectsLoaded.allProjects, I get the same pomFile issue.

Thanks.

You definitely shouldn’t apply ‘maven-publish’ plugin in ‘afterProject {}’ - this is what’s causing the error you’re seeing.

I wasn’t able to reproduce the problem with applying the plugin from an init script - as I’ve mentioned in the post you linked to. Any chance for providing a reproducible sample of the original problem that led you to applying the plugin from an ‘afterProject {}’ block?