1、build.gradle中引入maven插件
apply plugin: 'maven-publish'
2、配置publish
//上传至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
}
}
repositories {
maven {
if (project.version.endsWith('-SNAPSHOT')) {
url = "http://localhost:8081/repository/maven-snapshots/"
} else {
url = "http://localhost:8081/repository/maven-releases/"
}
credentials {
username 'admin'
password 'admin123'
}
}
}
其中artifact为打包的task,我这里用的是shadowJar,如果是其他的task可以替换
3、完整的build.gradle
apply plugin: 'com.github.johnrengelman.shadow'
apply plugin: 'maven-publish'
apply plugin: 'maven'
buildscript {
repositories {
maven { url "http://192.168.100.88:8081/repository/maven-public/" }
maven {url "http://maven.aliyun.com/nexus/content/groups/public"}
mavenCentral()
}
dependencies {
classpath 'com.github.jengelman.gradle.plugins:shadow:1.2.4'
}
}
group 'com.iscas.log'
sourceCompatibility = 1.8
repositories {
maven { url "http://192.168.100.88:8081/repository/maven-public/" }
maven {url "http://maven.aliyun.com/nexus/content/groups/public"}
mavenCentral()
}
dependencies {
// testCompile group: 'junit', name: 'junit', version: '4.12'
// compile group:"org.slf4j", name:"slf4j-api",version: "1.7.1"
compile group:"ch.qos.logback", name:"logback-core",version: "1.1.7"
compile group:"ch.qos.logback", name:"logback-access",version: "1.1.7"
// compile group:"ch.qos.logback", name:"logback-classic",version: "1.1.7"
compile fileTree(dir:'libs',include:['*.jar'])
}
shadowJar {
baseName = 'log-expansion'
classifier = null
version = null
dependencies {
include(dependency('ch.qos.logback:logback-core:1.1.7'))
include(dependency('ch.qos.logback:logback-access:1.1.7'))
include(dependency(files('libs/logback-classic-1.1.11.jar')))
include(dependency(files('libs/slf4j-api-1.7.9.jar')))
}
}
//打入本地maven库配置
install {
repositories.mavenInstaller {
pom.version="${project.version}"
pom.artifactId="${project.archivesBaseName}"
pom.groupId="${project.group}"
}
}
//上传至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
}
}
repositories {
maven {
if (project.version.endsWith('-SNAPSHOT')) {
url = "http://192.168.100.88:8081/repository/maven-snapshots/"
} else {
url = "http://192.168.100.88:8081/repository/maven-releases/"
}
credentials {
username 'admin'
password 'admin123'
}
}
}
}
4、使用publish发布到nexus