IntelliJ IDEA

jenkins+gitee 实现自动化部署项目到centos上(待续)

孤者浪人 提交于 2020-10-09 00:28:30
一 原理图 二 环境部署说明 服务器 部署说明 IP 开发机器 IDEA,部署在Windows上。 版本控制服务器 源码在码云上部署。 码云服务器 jenkins服务器 jekins自动化部署服务器,部署在windows上。 应用服务器 部署在Linux虚拟机上。 三 Jenkins基本配置 1 Configure System (系统设置) 在系统设置这里,我们只需要设置最后面的一项,配置远程服务器地址。 即我们代码最终运行的服务器地址信息,就像我们之前手动部署时使用xshell登录Linux服务器一样。 配置完成后点击保存即可,为后面我们配置自动化部署做准备,配置如下图: 2 Configure Global Security (全局安全配置) a 配置安全域 b 配置授权策略 3 Global Tool Configuration (全局工具配置 ) a 配置maven的全局settings路径 b 配置jdk c 配置git d 配置maven的安装路径 4.配置必要插件 确保下面3个插件都安装了。 gitee Publish over SSH Deploy to container Plugin 四 Jenkins服务器上创建项目和配置 1 新建工程 2 General(基础配置) 3 源码管理 4 构建触发器 5 构建环境(无需配置) 6 构建 7 构建后操作 a

技术宅自制超迷你智能NFC名片:一张平平无奇的门禁卡,如何变身为用不起的样子?

橙三吉。 提交于 2020-10-08 04:26:59
有一说一,头发多的程序员要是熬夜搞起手工来,效率高的可怕。 机器之心报道,参与:蛋酱。 一款火柴盒大小的电子卡片,集公司工牌、小区门禁卡、食堂饭卡于一身,到哪儿都能刷。奇怪,竟然也没人拦。 最近,B 站 UP 主「稚晖君」自制的超迷你智能 NFC 卡片火了。小巧玲珑的卡片,自带电子墨水屏,可以模拟各种 IC 卡,搭配 APP 还能任意设置显示内容…… 这一硬核 DIY 教程在发布的 30 个小时内,视频播放量已经突破百万,光点赞量就超过了十万。 最重要的是,他已经将代码开源了。感兴趣的话,你也可以动手试试(在你能看懂的前提下)。 项目地址: https:// github.com/peng-zhihui/ L-ink_Card 把门禁卡做成一般人用不起的样子 话说,这个 idea 最初是怎么来的呢? 嗯,创意源于生活。比如每个人身上肯定都有很多张 IC 卡,公司的工牌、食堂的饭卡、小区门禁卡等等,这些都是 IC 卡。 当然,卡片太多了也很烦恼。比如经常站在闸机面前,在一堆卡片中翻来翻去才找到需要的那张,这真的不够优雅。所以稚晖君决定,把这些卡片,统统装进一张电子卡片里。 动手之前,首先构思一下需要添加的功能: 1、可以储存多张卡片信息; 2、卡片内容可以擦写; 3、具备 NFC 标签功能; 4、带屏幕; 5、可以通过 APP 设置显示内容; 6、最重要的是,迷你,迷你,迷你。

填坑!线上Presto查询Hudi表异常排查

倾然丶 夕夏残阳落幕 提交于 2020-10-07 07:55:02
1. 引入 线上用户反馈使用Presto查询Hudi表出现错误,而将Hudi表的文件单独创建parquet类型表时查询无任何问题,关键报错信息如下 40931f6e-3422-4ffd-a692-6c70f75c9380-0_0-384-2545_20200513165135.parquet, start=0, length=67108864, fileSize=67108864, hosts=[], forceLocalScheduling=false, partitionName=dt=2020-05-08, s3SelectPushdownEnabled=false} (start = 2.3651547291593433E10, wall = 163 ms, cpu = 0 ms, wait = 0 ms, calls = 1): HIVE_BAD_DATA: Not valid Parquet file: 报Hudi表中文件格式不是合法的parquet格式错误。 2. 问题复现 开始根据用户提供的信息,模拟线上Hudi数据集大小、Presto和Hudi版本(0.5.2-incubating)来复现该问题。 进行试验发现当Hudi表单文件大小较小时,使用Presto查询一切正常。 构建Hudi表中单文件大小为100MB以上数据集,使用Presto查询。 可以看到

Intellij IDEA创建spring MVC项目

浪尽此生 提交于 2020-10-07 07:51:49
相信各位未来的Java工程师已经接触到了spring MVC这个框架的强大之处,看了很多的教程,都是eclipse的,在intellij IDEA这个强大的工具面前居然不能很顺畅的,今天我就带领大家用IDEA创建Hello World程序。 注: 1、本文只讲解怎么用intellij IDEA进行创建spring MVC项目,并不会讲解具体的spring MVC框架基础,如需了解框架原理,请移步其他教程。 2、本文是我在刚学习Spring MVC框架中,看了很多的教程,经过了前前后后很多的坑点进行编写,不足之处,多多指点,谢谢 环境: intellij IDEA 2017 CI JDK 1.8 tomcat 8.5.23 具体步骤 1、新建项目 勾选Spring MVC 、Web Application(勾选了Spring MVC后IDEA默认会勾选Web Application),Next 2、填写项目名、项目路径 这里项目名我用简单的springmvcdemo,路径就使用默认路径,Finish 3、创建文件夹如图 classes、lib文件夹我建议和我文件夹名相同(只是建议)、路径我建议也相同,其他两个文件夹看个人爱好哈。 4、导入相关jar包(IDEA自动导入) 在IDEA中其实已经给我们自动导入了相关jar,只不过我们需要在WEB-INF目录下导入相关jar包

No tests found for given includes: [com.xxx.smm.kafka.KafkaTopicCountMonitorTest.test](filter.inc

 ̄綄美尐妖づ 提交于 2020-10-07 04:23:42
idea 在 springboot + Gradle test时报错:No tests found for given includes 解决图 Gradle: IntelliJ IDEA使用Gradle作为默认测试运行器 。结果,在持续集成(CI)服务器上获得相同的测试结果。此外,在命令行中运行的测试将始终在IDE中运行。 IntelliJ IDEA:选择此选项可将测试过程委派给IntelliJ IDEA。在这种情况下,IntelliJ IDEA使用 JUnit 测试运行器,并且由于增量编译,测试运行得更快。 来源: oschina 链接: https://my.oschina.net/u/4369588/blog/4586615

非常有用的并发控制-倒计时器CountDownLatch

一曲冷凌霜 提交于 2020-10-06 03:44:59
CountDownLatch见名思义,即倒计时器,是多线程并发控制中非常有用的工具类,它可以控制线程等待,直到倒计时器归0再继续执行。 给你出个题,控制5个线程执行完后主线徎再往下执行,并统计5个线程的所耗时间。当然我们可以通过join的形式完成这道题,但如果我说统计100个1000个线程呢?难道要写1000个join等待吗?这显然是不现实的。 废话少说,我们来做一个例子看看上面的题怎么实现,并理解倒计时器。 首先通过new CountDownLatch(5)约定了倒计时器的数量,在这里也是线程的数量,每个线程执行完后再对倒计时器-1。countDown()方法即是对倒计时器-1,这个方法需要放在finally中,一定要保证在每个线程中得到释放,不然子线程如果因为某种原因报错倒计时器永远不会清0,则会导报主线程会一直等待。 await()方法即是主线程阻塞等待倒计器归0后再继续往下执行,当然await可以带时间进去,等待多久时间后不管倒计时器有没有归0主线程继续往下执行。 如上面的例子所示,我们输出了倒计时器最后的数字0,表示倒计时器归0了,也输出了从开始到结束所花费的时间。从这个例子可以完全理解倒计时器的含义,这个工具类在实际开发经常有用到,也很好用。 推荐去我的博客阅读更多: 1. Java JVM、集合、多线程、新特性系列教程 2. Spring MVC、Spring

面试官:换人!他连哈希扣的都不懂

妖精的绣舞 提交于 2020-10-06 02:35:08
前言 相信你面试的时候,肯定被问过 hashCode 和 equals 相关的问题 。如: hashCode 是什么?它是怎么得来的?有什么用? 经典题,equals 和 == 有什么区别? 为什么要重写 equals 和 hashCode ? 重写了 equals ,就必须要重写 hashCode 吗?为什么? hashCode 相等时,equals 一定相等吗?反过来呢? 好的,上面就是灵魂拷问环节。其实,这些问题仔细想一下也不难,主要是平时我们很少去思考它。 正文 下面就按照上边的问题顺序,一个一个剖析它。扒开 hashCode 的神秘面纱。 什么是 hashCode? 我们通常说的 hashCode 其实就是一个经过哈希运算之后的整型值。而这个哈希运算的算法,在 Object 类中就是通过一个本地方法 hashCode() 来实现的(HashMap 中还会有一些其它的运算)。 public native int hashCode(); 可以看到它是一个本地方法。那么,想要了解这个方法到底是用来干嘛的,最直接有效的方法就是,去看它的源码注释。 下边我就用我蹩脚的英文翻译一下它的意思。。。 返回当前对象的一个哈希值。这个方法用于支持一些哈希表,例如 HashMap 。 通常来讲,它有如下一些约定: 若对象的信息没有被修改,那么,在一个程序的执行期间,对于相同的对象