gradle 发布项目版本-PLAIN.war 文件而不是项目-version.war

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

当我 运行 “gradle 构建”时,它会生成一个 build/libs/project-version.war 文件,该文件能够 运行 自身 运行 “java -jar”命令。但是当我 运行 “gradle artifactoryPublish”时,它会在 artifactory 存储库中保存一个没有 tomcat 嵌入的“project-version-plain-war”文件。

我正在按照此说明操作 https://www.jfrog.com/confluence/display/JFROG/Gradle+Artifactory+Plugin

添加到 gradle.build 的行是这样的:

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" }
    }
  }
}

感谢帮助

使用from components.web 意味着您正在发布由war 任务生成的工件。您需要发布 bootWar 任务生成的工件。您可以通过将发布改为使用 artifact bootWar 来实现:

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

这在 reference documentation for Spring Boot's Gradle plugin 中有描述。