Gradle学习笔记3-构建java库

构建java库

本指南将指导您完成使用Gradle的Build Init插件生成适合其他JVM库和应用程序使用的JVM库的过程。

你要建造什么

您将使用标准布局生成Java库。

你需要什么

大约11分钟
文本编辑器或IDE
Java Development Kit(JDK)版本8或更高版本
Gradle分发版,5.0或更高版本

创建一个库项目
  • 创建文件夹
  • 进入到此文件夹 用命令行模式进入
执行初始化任务
image.png
  • 目录结构如下
image.png
重新查看所生成的文件
settings.gradle

注释很多 但只有一行配置 分配根目录名称

rootProject.name = 'building-java-libraries'
build.gradle
plugins {
    id 'java-library'
}

repositories {
    jcenter() 
}

dependencies {
    api 'org.apache.commons:commons-math3:3.6.1' 

    implementation 'com.google.guava:guava:26.0-jre' 

    testImplementation 'junit:junit:4.12' 
}

构建脚本添加了java-library插件。 这是java-base插件的扩展,并添加了用于编译Java源代码的其他任务。

文件src / main / java / jvm / library / Library.java如下所示:

package jvm.library;

public class Library {
    public boolean someLibraryMethod() {
        return true;
    }
}

生成的JUnit规范,src / test / java / jvm / library / LibraryTest.java如下所示:

package jvm.library;

import org.junit.Test;
import static org.junit.Assert.*;

public class LibraryTest {
    @Test public void testSomeLibraryMethod() {
        Library classUnderTest = new Library();
        assertTrue("someLibraryMethod should return 'true'", classUnderTest.someLibraryMethod());
    }
}

生成的测试类只有一个JUnit 4测试。 测试实例化Library类,调用someLibraryMethod方法,并检查返回的值是否为true。

组装jar

构建项目,运行构建任务

image.png

您可以通过打开位于build / reports / tests / test / index.html的HTML输出文件来查看测试报告。


image.png

您可以在build / libs目录中找到名为building-java-libraries.jar的新打包的JAR文件。 通过运行以下命令验证存档是否有效:


image.png

恭喜,您刚刚完成了创建Java库的第一步! 您现在可以根据自己的项目需求进行自定义。

自定义jar库

您通常希望JAR文件的名称包含库版本。 通过在构建脚本中设置顶级版本属性可以轻松实现这一点,如下所示:

build.gradle
version = '0.1.0'

现在运行jar任务


image.png

image.png

另一个常见要求是通常通过添加一个或多个属性来自定义清单文件。 让我们通过配置jar任务在清单文件中包含库名和版本。 将以下内容添加到构建脚本的末尾:

build.gradle
version = '0.1.1'
jar {
    manifest {
        attributes('Implementation-Title': project.name,
                   'Implementation-Version': project.version)
    }
}

要确认这些更改按预期工作,请再次运行jar任务,这次也从JAR解压缩清单文件:


image.png
image.png

现在查看META-INF / MANIFEST.MF文件的内容,您应该看到以下内容:


image.png
添加API文档

java-library插件通过javadoc任务内置了对Java API文档工具的支持。

Build Init插件生成的代码已经对Library.java文件发表了评论。 修改注释以成为javadoc标记。
运行javadoc任务


image.png

打开位于build / docs / javadoc / index.html的HTML文件来查看生成的javadoc文件。


image.png

到此已经成功构建了一个Java库项目,将其打包为JAR并在单独的应用程序中使用它。通过前面的联系已经
学会了如何:
  • 生成Java库
  • 调整生成的build.gradle和示例Java文件的结构
  • 运行构建并查看测试报告
  • 自定义JAR文件的名称及其清单的内容
  • 生成API文档。
遇到的错误

构建项目时提示失败,找不到tool.jar库文件。高级系统配置里添加JAVA_HOME,构建成功~

image.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 201,468评论 5 473
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 84,620评论 2 377
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 148,427评论 0 334
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,160评论 1 272
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,197评论 5 363
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,334评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,775评论 3 393
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,444评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,628评论 1 295
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,459评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,508评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,210评论 3 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,767评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,850评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,076评论 1 258
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,627评论 2 348
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,196评论 2 341

推荐阅读更多精彩内容