Gradle进阶:6:结合容器进行构建
发布日期:2021-06-30 20:15:56
浏览次数:2
分类:技术文章
本文共 4412 字,大约阅读时间需要 14 分钟。
这篇文章使用容器方式执行Gradle的构建,使用Gradle对示例代码进行jar包的构建并验证结果,来说明容器方式如何进行Gradle构建。Gradle镜像
可以使用Gradle官方镜像,也可使用liumiaocn/gradle下的镜像,此镜像也是完全基于官方镜像的方式做成。
镜像下载
镜像下载: docker pull liumiaocn/gradle:jdk8.6.0.1
版本确认
版本确认:docker run --rm liumiaocn/gradle:jdk8.6.0.1 gradle --version
可以看到此Gradle的版本为6.0.1
liumiaocn:jar liumiao$ docker run --rm liumiaocn/gradle:jdk8.6.0.1 gradle --version------------------------------------------------------------Gradle 6.0.1------------------------------------------------------------Build time: 2019-11-18 20:25:01 UTCRevision: fad121066a68c4701acd362daf4287a7c309a0f5Kotlin: 1.3.50Groovy: 2.5.8Ant: Apache Ant(TM) version 1.10.7 compiled on September 1 2019JVM: 1.8.0_232 (AdoptOpenJDK 25.232-b09)OS: Linux 4.9.184-linuxkit amd64liumiaocn:jar liumiao$
事前准备:代码准备
做一个简单的HelloWorld的java类,然后将其打成一个jar文件,具体的文件结构如下所示
liumiaocn:jar liumiao$ lsbuild.gradle settings.gradle srcliumiaocn:jar liumiao$ tree ..├── build.gradle├── settings.gradle└── src └── main ├── java │ └── com │ └── liumiaocn │ └── HelloPlugin.java └── resources └── com └── liumiaocn └── resource.xml8 directories, 4 filesliumiaocn:jar liumiao$
settings.gradle
liumiaocn:jar liumiao$ cat settings.gradle rootProject.name = 'jarPluginSample'liumiaocn:jar liumiao$
- rootProject.name在创建jar文件时根据约定会被使用。
build.gradle
liumiaocn:jar liumiao$ cat build.gradle apply plugin: 'java'version = '1.0'jar { manifest { attributes 'Implementation-Title': 'Gradle plugin sample: create jar distribution', 'Implementation-Version': version, 'Main-Class': 'com.liumiaocn.HelloPlugin', 'Created-By': 'liumiaocn' }}liumiaocn:jar liumiao$
- apply plugin: ‘java’:是引入java plugin支持唯一需要做的事情
- version:在生成的jar文件中会按照约定生成在jar文件名中
- jar{}: jar是java plugin所实现的task之一,这里使用它直接用来生成jar文件
- manifest{}:用于设定MANIFEST.MF的内容
- Main-Class: 指定jar文件中包含main方法的类
resource文件
liumiaocn:jar liumiao$ cat src/main/resources/com/liumiaocn/resource.xml liumiaocn:jar liumiao$
- 仅仅是一个示例,用于演示在jar文件中资源文件也被打包的过程
HelloWorld类
liumiaocn:jar liumiao$ cat src/main/java/com/liumiaocn/HelloPlugin.javapackage com.liumiaocn;public class HelloPlugin { public static void main(String[] args) { System.out.println("Hello, LiuMiao"); }}liumiaocn:jar liumiao$
构建
做好上述准备之后,直接将当前示例代码目录挂载至镜像的WORKDIR(/home/gradle)下,执行gradle jar命令即可。
执行命令:docker run --rm -v `pwd`:/home/gradle liumiaocn/gradle:jdk8.6.0.1 gradle jar
liumiaocn:jar liumiao$ lsbuild.gradle settings.gradle srcliumiaocn:jar liumiao$ docker run --rm -v `pwd`:/home/gradle liumiaocn/gradle:jdk8.6.0.1 gradle jarStarting a Gradle Daemon (subsequent builds will be faster)> Task :compileJava> Task :processResources> Task :classes> Task :jarDeprecated Gradle features were used in this build, making it incompatible with Gradle 7.0.Use '--warning-mode all' to show the individual deprecation warnings.See https://docs.gradle.org/6.0.1/userguide/command_line_interface.html#sec:command_line_warningsBUILD SUCCESSFUL in 9s3 actionable tasks: 3 executedliumiaocn:jar liumiao$
构建结果确认
liumiaocn:jar liumiao$ lsbuild build.gradle settings.gradle srcliumiaocn:jar liumiao$ tree ..├── build│ ├── classes│ │ └── java│ │ └── main│ │ └── com│ │ └── liumiaocn│ │ └── HelloPlugin.class│ ├── generated│ │ └── sources│ │ └── annotationProcessor│ │ └── java│ │ └── main│ ├── libs│ │ └── jarPluginSample-1.0.jar│ ├── resources│ │ └── main│ │ └── com│ │ └── liumiaocn│ │ └── resource.xml│ └── tmp│ ├── compileJava│ └── jar│ └── MANIFEST.MF├── build.gradle├── settings.gradle└── src └── main ├── java │ └── com │ └── liumiaocn │ └── HelloPlugin.java └── resources └── com └── liumiaocn └── resource.xml27 directories, 8 filesliumiaocn:jar liumiao$
jar文件结果确认
liumiaocn:jar liumiao$ java -jar build/libs/jarPluginSample-1.0.jar Hello, LiuMiaoliumiaocn:jar liumiao$
本地没有JDK或者JRE环境,直接使用此Gradle镜像也是可以同样确认的
liumiaocn:jar liumiao$ docker run --rm -v `pwd`:/home/gradle liumiaocn/gradle:jdk8.6.0.1 java -jar build/libs/jarPluginSample-1.0.jar Hello, LiuMiaoliumiaocn:jar liumiao$
转载地址:https://liumiaocn.blog.csdn.net/article/details/103614201 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
能坚持,总会有不一样的收获!
[***.219.124.196]2024年04月19日 15时22分27秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
Java Lambda表达式的应用--Stream API操作集合框架
2019-04-30
省市区三级联动插件Distpicker--前端实现地区三级联动
2019-04-30
solr的使用详解
2019-04-30
Myslq连接(JDBC)url属性的参数的设置
2019-04-30
关于Java继承,重载及运行的顺序的总结
2019-04-30
关于Spring MVC与前端的交互
2019-04-30
Mybatis逆向工程的使用
2019-04-30
关于Hibernate的优缺点
2019-04-30
常用的 Maven 命令
2019-04-30
常用的20个正则表达式
2019-04-30
数据结构之顺序表的实现
2019-04-30
数据结构之线性链表
2019-04-30
JQuery使用validate插件完成校验
2019-04-30
关于java的继承
2019-04-30
关于java的内部类
2019-04-30
关于java的枚举
2019-04-30
一个简单的layui登陆界面
2019-04-30
SQL考试常见题目
2019-04-30
使用Spring Boot写一个简单的Hello World
2019-04-30