gradle使用插件将jar包打入nexus的maven私服

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
gradle使用插件将jar包打入nexus的maven私服_第1张图片

你可能感兴趣的:(java)