Gradle系列——Gradle的build.gradle文件详情,项目发布(基于Gradle文档7.5)day3-3

news/2024/5/20 1:53:52 标签: gradle, java

Gradle系列——Gradle的build.gradle文件详情(基于Gradle文档7.5)day3-3

  • build.gradle
    • build常用方法和属性
    • 解决一些版本,字符集问题(常见属性配置)
    • Repositories(仓库配置)
    • Subprojects和Allprojects
      • 在父工程中通过project方法操作子工程
    • 使用ext扩展用户自定义属性
  • 项目发布
    • 发布步骤
      • 1.引入maven发布插件
      • 2.设置发布代码
      • 3.选择发布指令
    • 生成Javadoc

gradle_1">build.gradle

  1. 其实build.gradle文件支持使用Java或Groovy或Kotlin编写
  2. 每个project都会有一个build.gadle文件该文件是项目构建的入口,可配置版本、插件、依赖库等信息。
  3. 每个build文件都有一个对应的Project实例.对build.gradle,文件配置,本质就是设置Project实例的属性和方法。
  4. 由于每个project都会有一个build文件,那么Root Project也不列外Root Project 可以获取到所有Child Project,所以在Root Project的 build文件中我们可以对Child Project统一配置,比如应用的插件、依赖的maven 中心仓库等。

在子工程中可以使用parent获取父工程

build常用方法和属性

在这里插入图片描述

解决一些版本,字符集问题(常见属性配置)

java">//指定使用什么版本的JDK语法编译源代码,跟编译环境有关,在有java插件时才能用
sourceCompatibility = 1.8
//指定生成特定于某个JDK版本的class文件:跟运行环境有关,在有java插件时才能用
targetCompatibility = 1.8
//业务编码字符集,注意这是指定源码解码的字符集[编译器
JcompileJava.options.encoding "UTF一8"
//测试编码字符集,注意这是指定源码解码的字符集[编译器]
compileTestJava. options.encoding "UTF一8"
//编译JAVA文件时采用UTF-8 :注意这是指定源码编码的字符集【源文件】
tasks.withType (JavaCompile) {
options.encoding = "UTF一8"
)
//编译JAVA文件时采用UTF-8 :注意这是指定文档编码的字符集【源文件】
tasks.withType (Javadoc) {
options.encoding ="UTF一8"
)

Repositories(仓库配置)

配置在父工程中,对子工程无效
我们可以在其中配置多个仓库进行使用

java">repositories i
//gradle中会按着仓库配置的顺序,从上往下依次去对应的仓库中找所需要的jar包:
//如果找到,则停止向下搜索,如果找不到,继续在下面的仓库中查找
//指定去本地某个磁盘目录中查找:使用本地file文件协议:一般不用这种方式
maven { url 'file: ///D:/gradle/gradleRepos' }
maven { url "$rootDir/lib/release" }
//指定去maven的本地仓库查找
mavenLocal ()
//指定去maven的私服或者第三方镜像仓库查找
maven { name "Alibaba" ; url "https : //maven.aliyun . com/repository/public" }maven { name "Bstek" ; url "https: / /nexus ,bsdn.org/content/groups/public/" }
//指定去maven的远程仓库查找:即https : //repo.maven.apache.org/maven2/
mavenCentral ()
//去google仓库查找
google ()

Subprojects和Allprojects

  1. Subprojects:当前项目的子工程
  2. Allprojects:当前项目所有工程

我们可以使用这两个属性进行任务配置等操作

java">allprojects {
	tasks.create ( ' hello ' ) {
			println "project name is $task.project.name"
	}
}

在父工程中通过project方法操作子工程

如下

java">project('kid1'){
	//书写build.gradle的各种属性
	dependencies {
    testImplementation 'org.junit.jupiter:junit-jupiter-api:5.7.0'
    testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.7.0'
    implementation files('lib/mybatis-plus-spring-starter.jar','lib/mysql-connect-java.jar')
    implementation fileTree('dir':'lib',includes: ['*.jar'])
	}

}

使用ext扩展用户自定义属性

Project和Task都允许用户添加额外的自定义属性,要添加额外的属性,通过应用所属对象的ext 属性即可实现。添加之后可以通过ext属性对自定义属性读取和设置,如果要同时添加多个自定义属性,可以通过ext代码块

java">ext{
    maker="xxx"
    projectVersion="1.0"
    sdk=[
            minVersion:JavaVersion.VERSION_1_8
    ]
}

我们使用的时候直接使用$取值即可

项目发布

将写好的模块发布,提供他人使用
在这里插入图片描述

发布步骤

1.引入maven发布插件

java">plugins {
    id 'maven-publish'
}

2.设置发布代码

java">publishing{
    publications{
        myLibrary(MavenPublication){
            groupId = 'cn.fly.xxx'
            artifactId = 'xxx'
            version = '1.0.1'
            from components.java //设置发布jar包
        }
    }
    repositories {
        //本地仓库
        mavenLocal()
        //发布到私服
        maven{
            name = '私服仓库名称'
            url = '本地仓库地址或私服仓库地址'
            def releasesRepoUrl = layout.buildDirectory.dir('repos/releases')
            def snapshotsRepoUrl = layout.buildDirectory.dir('repos/snapshots')
            url = version.endsWith('SNAPSHOT') ? snapshotsRepoUrl : releasesRepoUrl
            //配置认证信息
//            credentials{
//                username='zhangsan'
//                password='xxxxxxxx'
//            }
        }
    }
}

3.选择发布指令

  1. generatePomFileForPubNamePublication:生成pom文件
  2. publishPubNamePublication.ToRepoNameRepository:发布项目到指定仓库.如果没有仓库名,默认为maven
  3. publishPubNamePublicationToMavenLocal:将PubName 发布复制到本地Maven仓库中包括POM文件和其他元数据。
  4. publish:发布到repositories中指定的仓库(为比如Maven私服)
  5. publishToMavenLocal: 执行所有发布任务中的操作发布到本地 maven仓库【默认在用户目录下的.m2/repository】。

在这里插入图片描述

生成Javadoc

我们需要添加java-library的插件

java">plugins {
    id 'java-library'
}

并配置如下属性

java">javadoc.options.encoding="UTF-8"

java{
	withJavadocJar()
	withSourcesJar()
}

http://www.niftyadmin.cn/n/1717093.html

相关文章

JMeter入门教程

前言: 本文写给想了解性能测试和JMeter的小白,适合对这两者了解很少的同学们,如果已经有使用经验的请绕道,别浪费时间:-) 我们将介绍JMeter的使用场景,如何安装、运行JMeter,以及开始一个最最简单的测试。…

二阶魔方入门玩法教程

第一步:还原底层角块 2这一步我们要将底层的4个角块都复原,非常简单,只需要记一个算法就好了,假设以白色为底,白色块只会有5个位置,这些位置要么是对称的,要么很容易变成前面的位置。 3我们举例…

三种常用的流行病学指标:RR、AR和OR

当我们研究某种疾病或健康问题时,我们需要了解不同人群之间的风险差异。为了衡量这种风险差异,流行病学家们使用了许多不同的指标,其中最常用的包括相对风险( R R RR RR)、绝对风险( A R AR AR)…

JavaIO进阶系列——BIO,NIO,AIO系列概述day1-1

JavaIO进阶系列——BIO,NIO,AIO系列概述day1-1概述IO模型BIO模型NIO模型AIO模型使用场景概述 在Java的软件设计开发中,通信架构是不可避免的,我们在进行不同系统或者不同进程之间的数据交互,或者在高并发下的通信场景下都需要用到网络通信相…

从Java5基础开始初识Lambda表达式——走进Java Lambda(一)

从Java5开始初识Lambda表达式 Lambda表示式是Java8的特性,对于如何安装Java8,装哪个版本的什么IDE,可以支持Java8语法,这里就恕不介绍了。请你确认安装了环境再往下看,真的,谢谢你。 我们知道在Java里面&am…

JavaIO进阶系列——BIO day1-2

JavaIO进阶系列——BIO day1-2BIOBIO工作流程同步阻塞实例ClientServer测试实现"keep-alive"(多发,多收)ClientServer测试实现多端接收Client开启IDEA配置Server服务端使用多线程ServerThreadServerReader线程服务类测试多端接收的…

Stream Java8的集合类利器——走进Java Lambda(二)

通过前面的例子,相信你已经对Lambda表达式有了一个初步了解了,前一篇主要是属性Lambda的语法,这篇我们继续。 Java8做了很多改进,以便我们少写点代码。接下来我们就来稍微了解一下,JDK自带的库文件中的一些简便…

JavaIO进阶系列——NIO day1-3

JavaIO进阶系列——NIO day1-3NIO注意点(*)原因解决NIO三大核心部分NIO非阻塞模式NIO和BIO比较NIO三大核心部分详细Channel通道Channel的特点Channel类结构FileChannel常用方法FileChannel实例(写数据)FileChannel实例&#xff08…