展开
拓展 关闭
订阅号推广码
GitHub
视频
公告栏 关闭

项目发布

  • 将项目发布到服务器上给其他人使用

  • 导入插件

plugins {
    id 'java' 
    id 'maven-publish'   // 用于发布
}
  • 发布所需配置
publishing {
    publications { 
        myLibrary(MavenPublication) {
            groupId = 'org.gradle.sample' //指定GAV坐标信息
            artifactId = 'library' 
            version = '1.1'
            from components.java  // 这里表示发布jar包
            //from components.web  // 需要引入war插件,这里表示发布war包
        }
    }
    repositories {
        //本地仓库位于USER_HOME/.m2/repository 
        mavenLocal()
        //发布项目到私服中
        maven { 
            name = 'myRepo' //name属性可选,表示仓库名称,url必填
            //发布地址:可以是本地仓库或者maven私服
            // 如下表示发布到1个新建的文件夹中
            //url = layout.buildDirectory.dir("repo")
            // 如下http的配置方式为maven私服,方式2
            // url = http://my.org/repo 
// 如下是2个url组成的三目运算,查看当前build.gradle中version '1.0-SNAPSHOT'是已SNAPSHOT结尾则使用第1个地址,否则使用第2个地址
            def releasesRepoUrl = layout.buildDirectory.dir('repos/releases')
            def snapshotsRepoUrl = layout.buildDirectory.dir('repos/snapshots') 
// 当然也可以指定如下http方式的地址
            //def snapshotsRepoUrl = http://ssss
            url = version.endsWith('SNAPSHOT') ? snapshotsRepoUrl : releasesRepoUrl
            //认证信息:用户名和密码
            // credentials {
            //     username = 'joe' 
            //     password = 'secret' 
            // }
        }
    }
}
  • 执行发布指令
generatePomFileForPubNamePublication: 生成 pom 文件
publishPubNamePublicationToRepoNameRepository:发布项目到指定仓库,如果没有仓库名,默认为 maven
publishPubNamePublicationToMavenLocal: 将 PubName 发布复制到本地 Maven 仓库中包括 POM 文件和其他元数据。
publish: 发布到 repositories 中指定的仓库(为比如 Maven 私服)
publishToMavenLocal: 执行所有发布任务中的操作发布到本地 maven 仓库【默认在用户家目录下的.m2/repository】。
  • 由于暂未指定私服,所以点击如下

  • 发布成war包
apply plugin: 'war'   // 需要导入war插件

// from components.java  // 这里表示发布jar包,注释这一行
from components.web    // 放开注释,表示打成war包
  • 发布带源码和文档的jar包
from components.java  // 这里表示发布jar包
//from components.web    // 表示打成war包,注释这一行,这里需要打成jar包

plugins {
    id 'java-library' // 引入该插件
    id 'maven-publish' 
}

//带源码和javadoc的发布:需要'java-library'插件支持:它是java的升级版,java插件的功能java-library都有
javadoc.options.encoding="UTF-8" 
java {
    withJavadocJar()
    withSourcesJar()
}
posted @ 2022-08-03 11:47  DogLeftover  阅读(47)  评论(0编辑  收藏  举报