gradle

build.gradle 获取 git 版本号 获取当前时间 自定义jar的名字

人盡茶涼 提交于 2020-07-27 15:06:51
以前这个gradle都是给Android使用的,万万没想到,Java的其它项目也能使用,甚至能替代maven或者说maven和gradle项目是可以互相转换的。还有就是在使用svn来管理项目的时候,每个svn版本都对应一个数字,但是换了git之后,每个提交记录就不是简单的生成个int数字,还是递增的数字了,对应的是个hash值,类似Java对象的hashcode,这个时候就希望,每次项目打包之后,产生出来的jar包带上这个git版本号,虽然不似svn那样一个简单的int数字就能说明版本,但是git的hash值还是可以凑合用的,也能对应找到提交版本记录。 首先在最外层的根 build.gradle文件里面定义几个全局的方法,子模块项目就可以直接使用,而不用再复制一次。 static def gitHashAndBuildTime() { return "-" + getGitSHA() + "-" + releaseTime() } static def releaseTime() { return new Date().format("yyyy-MM-dd HH:mm", TimeZone.getTimeZone("GMT+08:00")) } static def getGitSHA() { return 'git rev-parse --short HEAD'.execute(

IDEA通过Maven打包JavaFX工程(OpenJFX11)

元气小坏坏 提交于 2020-07-27 14:49:24
1 概述 最近研究JFX,写出来了但是打包不了,这。。。尴尬。。。 IDEA的文档 说只支持Java8打成jar包: 尝试过直接使用Maven插件的package,不行,也尝试过Build Artifacts,也不行,各种奇奇怪怪的问题。包括下图中的 Error....fx:deploy is not available in this JDK 不过幸好文档末尾提到可以使用一些 第三方工具 : 因此记录一下使用IDEA打包JFX11工程的过程。 2 环境 IDEA 2020.1 OpenJDK 11 OpenJFX 11 只需安装IDEA与JDK即可,JFX可以在pom.xml中引入。 3 创建工程 选择Maven,选择Create from archetype,然后Add Archetype并填上GroupId: org.openjfx 与ArtifactId: javafx-maven-archetypes 还有version: 0.0.1 下一步自定义,这里为了方便就直接默认了。 然后修改archetypeArtifactId为 javafx-archetype-fxml 完成即可。 4 检查文件 Maven同步完后,检查项目目录下的module-info.java与pom.xml,其中pom.xml不应该是下图这样的: 而应该是这样的,包含了javafx

为什么 Spring Boot 2.3.0 放弃Maven最终拥抱Gradle

▼魔方 西西 提交于 2020-07-27 11:34:40
在 2.3.0 中对 Spring Boot 进行了相当重大的更改,这是使用 Gradle 而非 Maven 构建的项目的第一个版本。 Spring 的每个项目都独立的项目组在开发运营,在用户最常使用的白盒部分(例如 API 设计)保持一致性,对于用户不可见的黑盒部分,各个项目组选择自己适合工具没有统一的约定。 例如: 项目构建工具。Spring Framework 自 2012 年的 3.2.0 起就使用 Gradle 构建,而一年后开始使用 Spring Boot,此后不久又开始使用 Spring Cloud,两者都基于 Maven。 项目 构建工具 Spring Framework Gradle Spring Boot Maven Spring Cloud Maven 为什么要切换 Spring Boot 团队考虑由 Maven 切换到 Gradle 的主要原因 为了减少构建项目所需的时间 。在开发和测试过程中,等待构建完成所花费的时间增加了修复错误和实现新功能所花费的时间。 为了解决这个问题,团队曾尝试利用 Maven 对并行构建的支持。由于 Spring Boot 构建的复杂性,特别是对 Invoker 插件的使用,尝试失败。通过将构建分为四个部分来解决 CI 问题。首先构建项目的主要核心,然后并行构建三个独立的部分。但 CI 的构建仍需要一个小时或更长时间。此外

超简单集成HMS Scan Kit扫码SDK,轻松实现扫码购

别等时光非礼了梦想. 提交于 2020-07-27 08:37:24
前言   在前面的文章中,我们向大家介绍了HMS Scan Kit 的快速集成方法以及HMS Scan Kit和其他开源扫码工具的竞争力对比分析,如果没有看到也没关系,文章下方的往期链接中有文章入口。我们现在已经习惯了扫码,扫码支付,扫码关注社交账号,扫码了解商品信息,扫码购物等等。今天就给大家介绍一下扫码购的开发流程。 场景   在购物类APP中,通过扫描二维码的入口,扫描商品的二维码,直接显示商品信息和购买链接,方便客户选购商品。 整体方案 开发前准备 打开AndroidStudio项目级build.gradle文件   在allprojects ->repositories里面配置HMS SDK的maven仓地址 allprojects { repositories { google() jcenter() maven {url 'http://developer.huawei.com/repo/'} } }   在buildscript->repositories里面配置HMS SDK的maven仓地址 buildscript { repositories { google() jcenter() maven {url 'http://developer.huawei.com/repo/'} } } 添加编译依赖   打开应用级的build.gradle文件   集成SDK

Android优化篇之APK体积优化

对着背影说爱祢 提交于 2020-07-27 03:59:16
在平常开发过程中,随着应用功能不断增加和版本功能迭代,APK的体积大小在不知不觉中不断增大,而APK体积大小会影响用户首次下载安装应用或更新应用的时长和流量消耗。因此,如何有效合理的优化APK的体积也是在平常开发中需要留意的。 一、合理选择图片类型 在APP中图片就占据了很大的一部分体积,所以图片的优化是我们必须要关注的点。 平常使用到的图片类型主要有jpg、png、webp、svg等。 jpg是有损压缩格式,使用的一种失真压缩标准方法,24 bit真彩色,内容比GIF丰富,不支持动画、不支持透明色。 png是无损压缩格式,PNG格式有8位、24位、32位三种形式,其中8位PNG支持两种不同的透明形式(索引透明和alpha透明),24位PNG不支持透明,32位PNG在24位基础上增加了8位透明通道(32-24=8),因此可展现256级透明程度。 webp的优势体现在它具有更优的图像数据压缩算法,能带来更小的图片体积,而且拥有肉眼识别无差异的图像质量;同时具备了无损和有损的压缩模式、Alpha 透明以及动画的特性。 svg是可缩放矢量图,SVG不会像位图一样因为缩放而让图片质量下降。优点在于可以减小APK的大小,在使用过程中可以使用tink属性变化颜色,建议用于图标大小在200dp*200dp的简单小图标以内。 因此

使用archivesBaseName改变Apk名称

我与影子孤独终老i 提交于 2020-07-27 03:54:10
在Build.gradle中配置如下: defaultConfig { .... archivesBaseName = "myApp-${verName}" } 生成的Apk文件: myApp-1.0.0-release.apk 也可以用在BuildTypes中: buildTypes { debug { //... archivesBaseName = "myApp-${versionName}" } } 生成的文件: myApp-1.0.0-debug.apk *注:android gradle plugin version is 1.5.0* 来源: oschina 链接: https://my.oschina.net/u/4407314/blog/4341649

LeanCloud在Android studio中SDK的安装与连接

空扰寡人 提交于 2020-07-27 02:55:22
LeanCloud在android studio的SDK安装和连接 LeanCloud在android studio的SDK安装和连接 官网下载好SDK 复制相应包 修改整个项目的gradle文件(可适当参照对比) 在app的build.gradle依赖加上 在app的AndroidManifest.xml文件上 测试自己的活动 如果编译有问题,可以尝试在app的build.gradle加上 测试成功 LeanCloud在android studio的SDK安装和连接 之前看官方文档看到头晕,网上我看都是有jar包的,我就有点迷终于摸索出来了一点方法在Android studio中去安装SDK,连接leancloud 官网下载好SDK 可以根据需要下载,可用Git,SDK下载网址: 点击链接下载: SDK下载 . 复制相应包 看产品文档需要哪个包,就下载哪个。在这里我需要存取数据,所以用了leancloud-push-lite,把这一整个文件夹放到项目的目录下 放置目录如图: 修改整个项目的gradle文件(可适当参照对比) buildscript { repositories { google ( ) jcenter ( ) maven { url "https://oss.sonatype.org/content/groups/public/" //仓库地址 } }

【34】kotlin 统计每个字符串出现的个数 groupBy

家住魔仙堡 提交于 2020-07-26 23:41:39
统计根目build.gradle中字符出现的次数 package com.yzdzy.kotlin.chapter5.example import java.io.File fun main(args: Array<String>) { val map = HashMap<Char, Int>() val res = File("build.gradle").readText().toCharArray().filterNot(Char::isWhitespace) //常用方法 res.forEach { val count = map[it] if (count == null) map[it] = 1 else map[it] = count + 1 } // map.forEach(::println) // 高阶函数 res.groupBy { it }.map { it.key to it.value.size }.forEach(::println) } 来源: oschina 链接: https://my.oschina.net/u/4305397/blog/4317705

阿里巴巴Java 程序员常用的 10 款开源工具!用好了,事半功倍!

余生颓废 提交于 2020-07-26 23:31:43
本文主要介绍阿里巴巴Java程序员常用的一些基本和高级工具。如果你是一位经验丰富的Java开发人员,你可能对这些工具很熟悉,但如果不是,现在就是是开始学习这些工具的好时机。 Java世界中存在许多工具,从Eclipse,NetBeans和IntelliJ IDEA等著名的IDE开始到Java开发人员应该知道的JVM分析和监视工具,如JConsole,VisualVM,Eclipse Memory Analyzer等。 尽管如此,在本文中,我将重点介绍适用于各种Java开发人员的通用工具,例如核心Java 开发人员和Web开发人员。 1.JIRA Atlassian的JIRA是当前敏捷开发领域最重要的工具之一。它用于错误跟踪,问题跟踪和项目管理。如果你遵循敏捷开发方法,例如Sprint和Scrum,那么你必须了解JIRA。它允许您创建Spring循环并跟踪软件开发的进度。 JIRA 是目前比较流行的基于Java架构的管理系统,由于Atlassian公 司对很多开源项目实行免费提供缺陷跟踪服务,因此在开源领域,其认知度比其他的产品要高得多,而且易用性也好一些。 2.Git Git是Java程序员的另一个必备工具,它是一个免费的开源分布式版本控制系统,旨在快速高效地处理从很小到非常大的项目版本管理。Git易于学习,占用空间小,具有超强的性能。 最初 Git 的开发是为了辅助 Linux

Jenkins构建步骤图解

家住魔仙堡 提交于 2020-07-26 00:21:27
Jenkins是什么 Jenkins是一个开源的、提供友好操作界面的持续集成(CI)工具,起源于Hudson(Hudson是商用的),主要用于持续、自动的构建/测试软件项目、监控外部任务的运行(这个比较抽象,暂且写上,不做解释)。Jenkins用Java语言编写,可在Tomcat等流行的servlet容器中运行,也可独立运行。通常与版本管理工具(SCM)、构建工具结合使用。常用的版本控制工具有SVN、GIT,构建工具有Maven、Ant、Gradle。 使用Jenkins对Java代码进行打包 Jenkins是一个强大的CI工具,虽然本身使用Java开发,但也能用来做其他语言开发的项目CI。下面讲解如何使用Jenkins创建一个构建任务。 1. 登录Jenkins,点击新建任务 之后进入到这个界面,任务名称可以自行设定,但需要全局唯一。输入名称后选择构建一个自由风格的软件项目(有时选择第二个:构建一个maven项目),并点击下方的确定按钮即创建了一个构建任务,然后就会自动跳转到该job的配置页面。 2. 配置界面,配置项详解 2.1 General :是构建任务的一些基本配置。名称,描述之类的。 2.2 源码管理 :源码管理就是配置你代码的存放位置。 2.3 构建触发器 :顾名思义,就是构建任务的触发器。 2.4 构建环境 :就是构建之前的一些准备工作,如指定构建工具。