Skip to content
Advertisement

gradle publishing project-version-PLAIN.war file instead of project-version.war

When I run “gradle build”, it generates a build/libs/project-version.war file which is able to run by itself with “java -jar” command. But when I run “gradle artifactoryPublish”, it saves on the artifactory repository a “project-version-plain-war” file which does not have tomcat embedded.

I am following this instruccions https://www.jfrog.com/confluence/display/JFROG/Gradle+Artifactory+Plugin

The lines added to the gradle.build are something like this:

plugin "maven-publish"
plugin "com.jfrog.artifactory"
artifactory { 
...
}

subprojects {
  plugin "war"
  group = group
  version = version

  publishing {
    publications {
      MavenPublication(MavenPublication) {
        from components.web
      }
    }
    repositories{
      maven { url "https://artifactory-server" }
    }
  }
}

help is appreciated

Advertisement

Answer

Using from components.web means that you are publishing the artifact produced by the war task. You need to publish the artifact produced by the bootWar task. You can do so by changing the publication to use artifact bootWar instead:

publishing {
  publications {
    MavenPublication(MavenPublication) {
      artifact bootWar
    }
  }
  repositories{
    maven { url "https://artifactory-server" }
  }
}

This is described in the reference documentation for Spring Boot’s Gradle plugin.

User contributions licensed under: CC BY-SA
5 People found this is helpful
Advertisement