spring boot 2.5.x + gradle 7.2 版本 生成、上传依赖包到maven

本文介绍了如何在Gradle 7.2版本下,结合SpringBoot 2.5.x,配置build.gradle文件以生成并上传依赖包到Maven仓库。配置内容包括指定SpringBoot版本、启用maven-publish插件、设置源码和JavaDoc生成,以及处理上传时的SHA校验警告。同时,解决生成jar包后缀问题,确保其他项目能成功依赖。
摘要由CSDN通过智能技术生成

spring boot 2.5.x + gradle 7.2 版本 生成、上传依赖包到maven

build.gradle 主要配置内容

build.gradle文件内容如下

plugins {
    id 'org.springframework.boot' version '2.5.6' // 指定依赖spring boot的版本
    id 'java'
    id 'maven-publish' //gradle 发布需要用到的插件
}

apply plugin: 'io.spring.dependency-management'

repositories {
    maven {
        allowInsecureProtocol = true
        url MAVEN_REPOSITORY_ADDR
    }
}

group = 'com.company.test'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8

bootJar.enabled = false //不生成可运行jar包

configurations {
    developmentOnly
    runtimeClasspath {
        extendsFrom developmentOnly
    }
}

java {
    //withJavadocJar() //生成java-doc 
    withSourcesJar() //生成源码,上传后方便查看
}

jar {
    enabled = true //生成依赖jar包
    archiveClassifier = '' //取消原来plain的后缀
}

publishing {
    publications {
        mavenJava(MavenPublication) {
            from components.java
        }
    }
    repositories {
        maven {
            credentials {
                username MAVEN_REPOSITORY_USER // maven 仓库用户
                password MAVEN_REPOSITORY_PWD // maven 仓库密码
            }
            url MAVEN_REPOSITORY_TEST
            allowInsecureProtocol true // 允许访问非https仓库
        }
    }
}

dependencyManagement {
    resolutionStrategy {
        cacheChangingModulesFor 0, 'seconds'
    }
}

dependencies {
    ... // 项目依赖
}

禁用gradle 6.0.1 开始 maven-publish 的sha256和sha512校验

从gradle 6.0.1 版本开始,使用maven-publish插件上传依赖包,除了上传sha1签名,还会上传sha256和sha512签名,如果目前使用的maven仓库不支持sha256和sha512校验,上传时将会出现告警:

> Task :publishMavenJavaPublicationToMavenRepository
Cannot upload checksum for module-maven-metadata.xml because the remote repository doesn't support SHA-256. This will not fail the build.
Cannot upload checksum for module-maven-metadata.xml because the remote repository doesn't support SHA-512. This will not fail the build.

不会影响上传,但是可以通过在gradle.properties里面设置systemProp.org.gradle.internal.publish.checksums.insecure=true来取消上传和校验sha256和sha512

生成的依赖jar包后带有plain后缀,其他项目依赖不成功

需要在gradle.build里面添加以下配置,就可以去除依赖jar包的plain后缀

jar {
   enabled = true
   archiveClassifier = '' //use empty string
}

参考资料

gradle 6.0.1 release-notes
Spring Boot 2.5.0 generates plain.jar file. Can I remove it?
https://docs.gradle.org/current/dsl/org.gradle.api.tasks.bundling.Jar.html#org.gradle.api.tasks.bundling.Jar:archiveClassifier


今日诗词
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值