Gradle maven-publish 不构建独立的 spring-boot 应用程序

     2023-02-26     182

关键词:

【中文标题】Gradle maven-publish 不构建独立的 spring-boot 应用程序【英文标题】:Gradle maven-publish does not build standalone spring-boot application 【发布时间】:2014-11-30 11:26:57 【问题描述】:

当我使用gradle build 构建一个spring-boot 应用程序(到一个独立的jar)时,会生成正确的工件。生成的 jar 包含所有依赖的 jar,并且是可执行的。

我还配置了maven-publish插件如下:

publishing 
   publications 
      mavenJava(MavenPublication) 
         from components.java
      
   

现在,当我执行gradle publish 时,将构建并发布一个没有依赖关系的小得多的 jar。

在后一种情况下不执行以下步骤。

:myProject:bootRepackage                                                                        
:myProject:assemble

如何确保发布时执行正确的构建步骤?

【问题讨论】:

【参考方案1】:

我有点惊讶从components.java 发布不会触发Java 插件的assemble 任务。 Spring Boot 的 bootRepackage 任务设置为 assemble 任务的依赖项,因此您需要使 publish 运行 assemble。尝试将以下内容添加到您的build.gradle

publish 
    dependsOn assemble
 

【讨论】:

原因是Java插件只是将jar任务的结果添加到组件集合中。 Spring Boot 插件负责将其修改为重新打包的 jar。也就是说,有人可能会争辩说,发布的内容实际上应该只是普通的 jar,而重新打包的 jar 可能应该在一个唯一的分类器下发布。 这是一个很好的建议,谢谢。 Spring Boot 当前并未将重新打包的 jar 视为单独的工件,而是将 jar 任务的输出转换到位。我现在想知道是否也应该更改它,以便可以在 Gradle 构建中引用原始工件和重新打包的工件。我打开了github.com/spring-projects/spring-boot/issues/1666。 在重新打包的 jar 上分配一个分类器是already supported。只需添加 `bootRepackage classifier = 'boot' 。 我指的是使重新打包的工件在构建中可用,例如通过将其包含在 project.configurations.archives.allArtifacts 中

使用 Gradle maven-publish 和签名插件时缺少校验和文件

】使用Gradlemaven-publish和签名插件时缺少校验和文件【英文标题】:MissingchecksumfileswhenusingGradlemaven-publishandsigningplugins【发布时间】:2019-11-1314:11:09【问题描述】:我有一个使用Gradle构建和打包的Java项目。我的目的是创建发布到Ma... 查看详情

如何使用 maven-publish 和 artifactory-gradle-plugin 生成 maven-metata.xml?

】如何使用maven-publish和artifactory-gradle-plugin生成maven-metata.xml?【英文标题】:HowdoIgeneratemaven-metata.xmlwithmaven-publishandtheartifactory-gradle-plugin?【发布时间】:2015-05-0312:25:24【问题描述】:我在groovy中编写了一个Gradle插件并使用Gradle... 查看详情

Gradle with maven-publish:如何自动版本化并将目录中的非 gradle jar 发布到 Artifactory

】Gradlewithmaven-publish:如何自动版本化并将目录中的非gradlejar发布到Artifactory【英文标题】:Gradlewithmaven-publish:howtoautoversionandpublishnon-gradlejarsinadirectorytoArtifactory【发布时间】:2014-07-0817:31:28【问题描述】:作为从ant迁移到gradle的... 查看详情

Gradle 构建步骤注释 kapt 不构建

】Gradle构建步骤注释kapt不构建【英文标题】:Gradlebuildstepannotationskaptnotbuilding【发布时间】:2018-10-2017:08:20【问题描述】:我有AndroidStudio3.1.2。我有Kotlin1.2.41-release-Studio3.1-1。build.gradle里面没有annotationProcessor的引用,我只用了kot... 查看详情

Gradle 构建不下载依赖项

】Gradle构建不下载依赖项【英文标题】:Gradlebuilddoesn\'tdownloaddependencies【发布时间】:2016-11-2323:01:25【问题描述】:在我的web应用的根目录中运行gradlebuild后,build.gradle中声明的spring安全依赖项没有被下载。这是我的build.gradle/**T... 查看详情

此构建中使用了已弃用的 Gradle 功能,使其与 Gradle 5.0 不兼容

】此构建中使用了已弃用的Gradle功能,使其与Gradle5.0不兼容【英文标题】:DeprecatedGradlefeatureswereusedinthisbuild,makingitincompatiblewithGradle5.0【发布时间】:2021-11-1323:03:55【问题描述】:我的gradle失败:..."DeprecatedGradlefeatureswereusedinthisb... 查看详情

gradle 中的 shadow 插件不起作用 - gradle build 不会构建胖 jar

】gradle中的shadow插件不起作用-gradlebuild不会构建胖jar【英文标题】:shadowpluginingradleisnotworking-gradlebuilddoesnotbuildafatjar【发布时间】:2018-05-2816:05:14【问题描述】:我有以下build.gradle内容:group\'com.example\'version\'1.0-SNAPSHOT\'buildscript... 查看详情

如何将 Maven 构建转换为 Gradle?

】如何将Maven构建转换为Gradle?【英文标题】:HowtoconvertaMavenbuildtoGradle?【发布时间】:2014-01-1816:20:10【问题描述】:我知道我应该使用我的build.gradle和init.gradle文件,但我不知道要写什么或如何使用pom.xml文件指向我的项目文件... 查看详情

Gradle 构建不起作用:任务“:MyApp:compileDebug”执行失败

】Gradle构建不起作用:任务“:MyApp:compileDebug”执行失败【英文标题】:Gradlebuildnotworking:Executionfailedfortask\':MyApp:compileDebug\'【发布时间】:2014-01-3111:42:58【问题描述】:我正在尝试将项目迁移到Gradle,但每次运行命令时都会引... 查看详情

当 JUnit 测试失败时,Mark Gradle 在 Jenkins 中构建不稳定

】当JUnit测试失败时,MarkGradle在Jenkins中构建不稳定【英文标题】:MarkGradlebuildunstableinJenkinswhenJUnittestsfail【发布时间】:2012-01-1017:55:50【问题描述】:我在Jenkins中有一个Gradle构建,其中包含作为构建的一部分执行的各种JUnit测试... 查看详情

Gradle 可以处理不符合默认约定的构建目录结构吗?

】Gradle可以处理不符合默认约定的构建目录结构吗?【英文标题】:CanGradlehandleabuilddirectorystructurethatdoesnotconformdefaultconventions?【发布时间】:2011-02-0220:01:09【问题描述】:我正在开发一个基于javaant+ivy的项目,该项目具有以下目... 查看详情

此构建中使用了已弃用的 Gradle 功能,使其与 Gradle 7.0 不兼容。扑

】此构建中使用了已弃用的Gradle功能,使其与Gradle7.0不兼容。扑【英文标题】:DeprecatedGradlefeatureswereusedinthisbuild,makingitincompatiblewithGradle7.0.Flutter【发布时间】:2021-06-0218:06:15【问题描述】:所以我最近切换到flutterbeta频道flutter1.... 查看详情

此构建中使用了已弃用的 Gradle 功能,使其与 Gradle 6.0 不兼容。 - 反应原生

】此构建中使用了已弃用的Gradle功能,使其与Gradle6.0不兼容。-反应原生【英文标题】:DeprecatedGradlefeatureswereusedinthisbuild,makingitincompatiblewithGradle6.0.-Reactnative【发布时间】:2020-07-1116:14:46【问题描述】:当我安装ReactNativeWebView时... 查看详情

当我在 settings.gradle 文件中包含项目时,如何不包含构建任务?

】当我在settings.gradle文件中包含项目时,如何不包含构建任务?【英文标题】:HowcanInotincludeabuildtaskwhenIincludeaprojectinmysettings.gradlefile?【发布时间】:2013-01-2415:27:05【问题描述】:我的settings.gradle文件如下所示:include"serverTest","s... 查看详情

当我在 settings.gradle 文件中包含项目时,如何不包含构建任务?

】当我在settings.gradle文件中包含项目时,如何不包含构建任务?【英文标题】:HowcanInotincludeabuildtaskwhenIincludeaprojectinmysettings.gradlefile?【发布时间】:2013-01-2415:27:05【问题描述】:我的settings.gradle文件如下所示:include"serverTest","s... 查看详情

使用 multiDexEnabled 而不使用 Gradle,而是使用 Eclipse 构建过程

】使用multiDexEnabled而不使用Gradle,而是使用Eclipse构建过程【英文标题】:UsemultiDexEnabledwithoutGradlebutEclipsebuildprocessinstead【发布时间】:2015-01-0109:14:22【问题描述】:由于最新的SDK版本,创建具有多个dex文件(https://developer.android.co... 查看详情

使用gradle但不使用java插件构建java项目

...目标是探索在没有使用任何额外插件的情况下,如何使用Gradle 构建一个Java 项目,以此对比使用Java 插件时得到的好处。初始化项目使用GradleInit 插件提供的init task来创建一个Gradle 项目:gradleinit--typebasic--ds... 查看详情

MapStruct 不使用 Kotlin 和 Spring Boot 自动装配,使用 Gradle 构建

】MapStruct不使用Kotlin和SpringBoot自动装配,使用Gradle构建【英文标题】:MapStructnotautowiringwithKotlinandSpringBoot,builtusingGradle【发布时间】:2020-01-1714:31:30【问题描述】:我的gradle文件中有以下部分:applyplugin:\'kotlin-kapt\'...compile("org.ma... 查看详情