之前写过一篇文章https://blog.csdn.net/u011943534/article/details/89173294,使用gradle的maven-publish插件将源码打成jar并推送至了maven私服。现在想让源码也打入maven私服,方便查看源码。实现方式很简单,只需做一点修改。
1、添加sourceJar Task
java">task sourcesJar(type: Jar) {
from sourceSets.main.allJava
archiveClassifier = 'sources'
}
2、推送
java">task sourcesJar(type: Jar) {
from sourceSets.main.allJava
archiveClassifier = 'sources'
}
3、完整例子:
java">
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'
}
}
}
}
}