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 中有描述。
当我 运行 “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 中有描述。