之前写过一篇文章https://blog.csdn.net/u011943534/article/details/89173294,使用gradle的maven-publish插件将源码打成jar并推送至了maven私服。现在想让源码也打入maven私服,方便查看源码。实现方式很简单,只需做一点修改。

1、添加sourceJar Task

task sourcesJar(type: Jar) {
        from sourceSets.main.allJava
        archiveClassifier = 'sources'
    }

2、推送

task sourcesJar(type: Jar) {
        from sourceSets.main.allJava
        archiveClassifier = 'sources'
    }

3、完整例子:


buildscript {
    repositories {
        maven { url "${nexusUrl}" }
        maven {url "${aliyunUrl}"}
        maven { url "${springUrl}" }
        maven { url "${spring2Url}" }
        jcenter()
        mavenCentral()

    }
    dependencies {
        classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
        classpath("com.google.protobuf:protobuf-gradle-plugin:${gradleProtobufGenerateVerson}")
//        classpath "se.transmode.gradle:gradle-docker:${gradle_docker_version}"
    }
}

subprojects  {
    apply plugin: 'java'
    apply plugin: 'org.springframework.boot'
    apply plugin: 'idea'
    apply plugin: 'io.spring.dependency-management'
    apply plugin: 'maven'
    apply plugin: 'maven-publish'
    group = 'com.iscas'
    //版本号定义规则:开发中: <版本号(x.x.x)>-<当天日期>-<当天更新的小序号>
      //发布版本:x.x.x-RELEASE
    version = '1.0.1-2021.01.23-3'
    sourceCompatibility = "${javaVersion}".toFloat()
    targetCompatibility = "${javaVersion}".toFloat()

    repositories {
        maven { url "${nexusUrl}" }
        maven {url "${aliyunUrl}"}
        maven { url "${springUrl}" }
        maven { url "${spring2Url}" }
        maven { url "${spring3Url}" }
        jcenter()
        mavenCentral()
    }
    tasks.withType(JavaCompile) {
        options.encoding = "UTF-8"
    }
    dependencies {
        annotationProcessor "org.projectlombok:lombok"
        compileOnly "org.projectlombok:lombok"
        testAnnotationProcessor "org.projectlombok:lombok"
        testCompileOnly "org.projectlombok:lombok"
        //junit
        testCompile group: 'junit', name: 'junit', version:"${junitVersion}"
    }
    //这里一定得要。在多模块下,不然编译失败,因为不会把依赖模块给打包。
    jar {
        enabled = true
    }

    task sourcesJar(type: Jar) {
        from sourceSets.main.allJava
        archiveClassifier = 'sources'
    }
    //上传至nexus
    publishing {
        publications {
            maven(MavenPublication) {
                groupId project.group
                artifactId project.name
                version project.version
                //若是war包,就写components.web,若是jar包,就写components.java
                from components.java
//                artifact shadowJar
                artifact sourcesJar
            }
        }
        repositories {
            maven {

                if (project.version.endsWith('-SNAPSHOT')) {
                    url = "http://172.16.10.190:8081/repository/maven-snapshots/"
                } else {
                    url = "http://172.16.10.190:8081/repository/maven-releases/"
                }

                credentials {
                    username 'xxx'
                    password 'xxx'
                }
            }
        }
    }
}
Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐