阅读更多

0顶
0踩

编程语言

原创新闻 使用gradle构建java项目

2018-07-16 13:17 by 见习记者 hw1287789687 评论(0) 有17826人浏览

gradle 是什么

gradle 是一个让构建自动化的工具,类似于maven,ant的功能.
使用gradle可以给java项目编译,单元测试,打包,或者生成可执行的jar包等

gradle的依赖环境

gradle依赖java环境,所以使用gradle前需要安装jdk 或jre

gradle 构建项目的流程

gradle的构建依赖于task, task可以指定与其他task之间的依赖关系 比如,有两个task,walk 和bike,如果指定walk依赖bike,那么 执行walk前会先执行bike.

task的来源有两种:

  1. 1.插件提供,gradle有很多现成的插件;



 

 

  1. 2.自定义:在build.gradle 文件中声明task


 

task 能实现哪些功能

下面是一些常用的基本功能

复制

 

task walk(description:'walk') {
    doLast {
        copy {
            into 'demo'
            exclude '**/.svn/**'
            from('README.md')
        }
    }
}

  

 

删除

 

task walk(description:'walk') {
    doLast {
        println 'walk...'
      
        project.delete {
            delete 'README.md'
            followSymlinks = true
        }
        
    }
}

参考:https://docs.gradle.org/current/dsl/org.gradle.api.Project.html#N1512A 

 

 

 

 

如何执行任务

方式一:使用全局命令

gradle <任务名>



 

方式二:使用项目中的脚本

./gradlew <任务名>



 

引入本地jar包

 

compile project.fileTree(dir:'/Users/whuanghkl/code/mygit/myproject/target',include:['io0007-0.0.1.jar'])

 

 

gradle的插件有哪些

参考 https://docs.gradle.org/current/userguide/userguide.html



 

如何查询依赖的版本

gradle中依赖的仓库有多种:


参考:https://docs.gradle.org/current/dsl/org.gradle.api.artifacts.dsl.RepositoryHandler.html

我们可以选择 maven仓库: 

 

repositories {
    mavenCentral()
}

 

 

那么查询依赖就和maven一样了.

生成可执行的jar包

我的项目是spring boot,所以需要引入插件'org.springframework.boot'
id 'org.springframework.boot' version '2.0.3.RELEASE'
需要在build.gradle 文件中 指定可执行jar的main class :

 

jar {
    manifest {
        attributes 'Main-Class': 'com.kunlunsoft.Application'
    }
}

 

 

执行任务bootJar 就可以生成可执行的jar包





  

gradle 与maven相比有哪些优势

  1. 因为基于 groovy,功能更强大,可以很方便的自定义任务;
  2. 添加依赖更简洁方便,maven 需要三行,gradle只需要一行;
  3. 任务的执行流程更灵活,不像maven的生命周期那么固定.

我项目中完整的build.gradle 文件如下:

 

plugins {
    id 'java'
    id 'base'
//    id 'application'
    id 'org.springframework.boot' version '2.0.3.RELEASE'
}


//mainClassName = "com.kunlunsoft.Application"
group 'com.kunlunsoft'
version '1.0.0-SNAPSHOT'

sourceCompatibility = 1.8
targetCompatibility = 1.8

repositories {
    mavenCentral()
}

jar {
    manifest {
        attributes 'Main-Class': 'com.kunlunsoft.Application'
    }
}
task walk(description:'walk') {
    doLast {
        println 'walk...'
    }
}



dependencies {
    testCompile group: 'junit', name: 'junit', version: '4.12'
    testCompile("org.springframework.boot:spring-boot-starter-test")
    //数据源
    compile 'org.springframework.boot:spring-boot-starter:1.5.14.RELEASE'
    compile 'org.springframework.boot:spring-boot-starter-web:1.5.14.RELEASE'
    compile 'org.springframework.boot:spring-boot-starter-data-redis:1.5.14.RELEASE'
    compile 'mysql:mysql-connector-java:5.1.38'

    compile project.fileTree(dir:'/Users/whuanghkl/code/myproject/target',include:['io0007-0.0.1-SNAPSHOT.jar'])
    compile 'com.google.guava:guava:23.0-rc1'
    compile 'org.apache.commons:commons-email:1.5'
    compile 'org.codehaus.jackson:jackson-mapper-lgpl:1.9.12'
    //redis
//    compile 'org.springframework.data:spring-data-redis:1.8.13.RELEASE'
    compile 'redis.clients:jedis:2.9.0'
    compile 'org.springframework.statemachine:spring-statemachine-core:1.2.0.RELEASE'
    compile 'com.alibaba:fastjson:1.2.47'

//配置mybatis
    compile "org.mybatis.spring.boot:mybatis-spring-boot-starter:1.1.1"

    compile 'org.springframework.boot:spring-boot-gradle-plugin:1.5.14.RELEASE'
//    compile 'org.springframework:springloaded:1.5.14.RELEASE'
}

 

 

参考:https://my.oschina.net/huangweiindex/blog/1844872

https://my.oschina.net/huangweiindex/blog/1842459

0
0
评论 共 0 条 请登录后发表评论

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • 使用 Gradle 构建 Java 项目

    本指南将引导您使用 Gradle 构建一个简单的 Java 项目。

  • 使用Gradle构建Java项目

    这个手册将通过一个简单的Java项目向大家介绍如何使用Gradle构建Java项目。 我们将在这篇文档航中创建一个简单的Java项目,然后使用Gradle构建它。预留15分钟空闲时间一件称手的兵器(你最喜欢的IDE或者文本编辑器)...

  • java源码无lib文件夹-gs-gradle:使用Gradle构建Java项目::了解如何使用Gradle构建Java项目

    项目以进行构建。 为了保持对 Gradle 的关注,现在让项目尽可能简单。 在src/main/java/hello目录中,您可以创建您想要的任何 Java 类。 为简单起见并与本指南的其余部分保持一致,Spring 建议您创建两个类: Hello...

  • gs-gradle, 使用Gradle构建Java项目.zip

    gs-gradle, 使用Gradle构建Java项目 标记项目gradle目录你将构建什么。你需要什么。设置了项目项目。安装 Gradle找出Gradle可以做什么。构建Java代码声明依赖项使用Gradle包装程序生成项目。摘要文件另请参

  • 5分钟了解Gradle并构建java项目

    5分钟了解Gradle并构建java项目

  • 使用gradle构建Java项目

    Gradle和许多插件在一起运行。插件是Gradle的扩展,它以某种方式...大部分Java项目的构建都十分相似: 编译Java源码文件。 运行一些单元测试并且创建一个JAR文件来包含你的class文件。 Groovy通过使用Gradle的J...

  • gradle如何构建java项目

    之前的文章我们讲到了gradle的基本使用,使用gradle的最终目的就是为了构建java项目。今天本文将会详细的讲解如何在gradle中构建java项目。 构建java项目的两大插件 安装java项目的目的不同,构建java项目有两大...

  • Gradle构建 Java项目示例

    Gradle构建 Java项目,简单的把java 项目构建成jar

  • 用Gradle构建Java项目

    用Gradle构建Java项目 本指南将引导您使用Gradle构建一个简单的Java项目。 你要建什么 您将创建一个简单的应用程序,然后使用Gradle构建它。 你需要什么 大约15分钟 最喜欢的文本编辑器或IDE JDK 6...

  • gradle系列笔记一:使用gradle构建java项目

    gradle构建编译java项目

  • 《gradle教程系列》三.使用gradle构建Java项目

    0.背景一般Java项目的过程都是,下载和管理依赖jar包,编译源文件,进行单元测试,打包项目为Jar文件。单纯的使用Gradle只能做到部分功能,最常见的就是下载和管理依赖jar包等等,剩下的功能需依赖于插件才能完成。...

  • 命令构建gradle项目_使用Gradle构建项目

    Gradle 是一款基于 Groovy 语言、免费开源的构建工具,它既保持了 Maven 的优点,又通过使用 Groovy 定义的 DSL 克服了 Maven 中使用 XML 繁冗以及不灵活的缺点。安装一种方式是从 官方 下载解压然后配置环境变量。...

  • IDEA使用gradle创建java普通项目

    IDEA使用gradle创建java普通项目 一、gradle新建java项目 1.1先安装好Gradle,创建新项目,选择Gradle,选择对应的JDK,勾选Java: 1.2定义项目组织结构和项目名称 1.3 gradle工程初始化设置 1.4 指定...

  • .NET5仓储管理系统:集成EFCore、Redis缓存、RabbitMQ等技术实现企业级应用

    内容概要:本文详细介绍了基于.NET5开发的一个仓储管理系统,涵盖了多个关键技术的应用。首先,在数据访问方面,使用了EF Core进行ORM操作,并引入了全局逻辑删除和多租户过滤等功能。其次,权限管理部分采用Policy机制实现动态按钮权限控制,权限数据存储于Redis中,确保高效响应。再次,消息队列方面,通过RabbitMQ实现库存变动后的异步通知,保障库存数据的一致性和可靠性。此外,系统还支持多租户模式,能够根据不同租户的需求灵活切换数据库连接。前端则选择了LayUI作为主要框架,配合WebSocket实现库存变化的实时推送。部署环节涉及Ocelot网关、Consul服务注册以及Docker容器化部署,确保系统的高可用性和扩展性。 适合人群:具有一定.NET开发经验的研发人员和技术爱好者。 使用场景及目标:适用于希望深入了解.NET5企业级应用开发的技术人员,尤其是对仓储管理系统感兴趣的人群。通过学习本文,读者可以掌握如何将多种现代技术集成到一个完整的解决方案中,从而提高开发效率和系统性能。 其他说明:文中提供了大量实际代码片段,帮助读者更好地理解和实践相关技术。同时,作者分享了许

  • 中国联通自智网络技术白皮书-云光和云网专线场景的技术特征与应用

    内容概要:本文档是中国联通发布的关于自智网络技术白皮书,详细介绍了云光和云网专线场景下的自智网络技术。主要内容涵盖行业洞察、中国联通专线自智网络概述、云光和云网专线自智网络的技术特征、分级标准及其关键技术,以及专线自智网络的分级测评和认证体系。文中强调了自智网络在提升网络智能化、自动化方面的关键作用,特别是在云光和云网专线场景的应用,旨在为行业客户提供高品质的专线服务,促进网络向融合化、智能化、绿色化发展。 适合人群:适用于通信行业的技术人员、研究人员、管理人员,尤其是关注自智网络技术及其应用的专业人士。 使用场景及目标:①帮助行业客户理解自智网络技术在云光和云网专线场景中的应用;②为运营商提供技术参考,提升网络智能化水平;③促进产业链上下游协同发展,推动自智网络的商业化应用。 其他说明:本文档不仅提供了详细的理论和技术解析,还结合了中国联通的实际案例,展示了自智网络在实际应用中的成效和发展前景。

  • 三菱Q系列PLC在液晶电视导光板加工中的应用:QD75MH总线伺服与自动化控制系统详解

    内容概要:本文详细介绍了三菱Q系列PLC在液晶电视导光板加工中的应用案例。主要内容涵盖Q系列PLC的使用、QD75MH定位模块和SSNET总线伺服的应用、伺服控制、触摸屏程序设计以及温控器的使用。文中不仅提供了详细的硬件配置和软件编程实例,还深入解析了各个组件的工作原理及其协同工作的机制。此外,文章还分享了一些实际操作中的经验和常见问题解决方案,如伺服控制中的加减速曲线优化、温控器的Modbus通讯调试、以及总线通讯中的丢包问题处理等。 适合人群:从事工业自动化领域的工程师和技术人员,尤其是对三菱Q系列PLC和伺服控制系统感兴趣的读者。 使用场景及目标:适用于液晶电视导光板加工生产线的设计、安装、调试和维护。目标是帮助技术人员理解和掌握三菱Q系列PLC及相关组件的应用,提升系统的稳定性和精度。 其他说明:文章通过具体的代码示例和实际操作经验,展示了如何利用三菱Q系列PLC实现高效、稳定的工业自动化控制。对于希望深入了解工业自动化控制技术和三菱PLC编程的读者来说,是一份非常有价值的参考资料。

  • (源码)基于Go语言的用户积分系统 PointSystem.zip

    # 基于Go语言的用户积分系统 PointSystem ## 项目简介 本项目是一个基于Go语言的用户积分系统,旨在实现常见的用户积分功能,包括积分的获取、扣除和查询等。该系统适用于各种需要用户积分的场景,如购物网站、社区论坛等。 ## 项目的主要特性和功能 1. 用户积分管理系统能够记录用户的积分变化,包括增加积分和减少积分。 2. 积分查询用户可以查询自己的总积分。 3. 积分明细查询用户可以查询自己的积分变化明细,包括积分增加和扣除的记录。 4. 日志记录系统能够记录操作日志,方便问题追踪和审计。 ## 安装使用步骤 1. 确保已安装Go语言环境,并设置好环境变量。 2. 下载项目的源代码文件,解压到本地目录。 3. 在项目根目录下,找到并打开文件 confconf.go,根据实际需求修改数据库连接配置信息(mysqlHost、mysqlUsername、mysqlPassword、mysqlDb 和 LogPath)。

  • (源码)基于Arduino的SIMONTRONI游戏.zip

    # 基于Arduino的SIMONTRONI游戏 ## 项目简介 SIMONTRONI是一个基于Arduino的交互式记忆游戏。玩家需要记住并重复由LED灯显示的随机序列。随着游戏的进行,序列的长度会逐渐增加,挑战玩家的记忆能力。该项目还包括一个音量调节功能,通过旋钮调节游戏音量。 ## 项目的主要特性和功能 1. 记忆挑战玩家需要记住并重复LED灯显示的序列。 2. 多级游戏随着游戏的进行,序列的长度会逐渐增加,增加游戏的难度。 3. 音量调节通过旋钮调节游戏音量,满足不同玩家的需求。 4. 硬件交互使用Arduino Uno、LED灯、按钮和电阻等硬件组件,实现游戏的物理交互。 ## 安装使用步骤 1. 准备硬件 1个Arduino Uno 4个LED灯 4个按钮 1个蜂鸣器 1个5k电位器 若干电阻(220和330) 1个面包板和若干导线 2. 下载代码

  • sqlite-devel-3.26.0-15.el8.x64-86.rpm.tar.gz

    1、文件说明: Centos8操作系统sqlite-devel-3.26.0-15.el8.rpm以及相关依赖,全打包为一个tar.gz压缩包 2、安装指令: #Step1、解压 tar -zxvf sqlite-devel-3.26.0-15.el8.tar.gz #Step2、进入解压后的目录,执行安装 sudo rpm -ivh *.rpm

  • (源码)基于Python的迷宫探索强化学习项目.zip

    # 基于Python的迷宫探索强化学习项目 ## 项目简介 本项目是一个基于强化学习算法的迷宫探索任务。它使用Python编程语言和多种强化学习算法(如QLearning、Sarsa、Sarsa Lambda等)来训练智能体,使其在随机变化的迷宫环境中找到最短路径到达目标点。 ## 项目的主要特性和功能 1. 迷宫环境模拟项目使用CSV文件定义迷宫地图,模拟二维迷宫环境,包括障碍物、悬崖和终点等。 2. 强化学习算法实现实现了QLearning、Sarsa、Sarsa Lambda等强化学习算法,用于智能体的决策过程。 3. 奖励函数设计设计了多种奖励函数,包括距离奖励、危险区域惩罚、防止终点区域“守株待兔”现象和重复路径惩罚等,以引导智能体更好地探索迷宫。 4. 经验回放策略采用了经验回放策略,以提高数据利用效率并稳定学习过程。 5. 可视化界面提供了基于pygame库的可视化界面,用于展示迷宫的布局、智能体的移动和奖励曲线等。

Global site tag (gtag.js) - Google Analytics