00:00
哎,然后呢,我给大家准备了几个关于build标签的典型应用,我们一个一个来看一下啊,第一个呢,是我们说去指定这个JDK的版本。呃,这个指定JDK的版本呢,是我们在这个。哎。呃,最初呢,在三定寺里边儿去配的。哎,我们是用这个profile的方式啊,这样的方式去制定的。然后呢,如果我们暂时把这个注视角啊,取消,取消调查。你再执行这个编译啊,这个时候呢,呃,我们看一下这个效果哈,咱们把这个代码给他拿过来。嗯。这是我们关于Bill的标签,或者是这么说吧,Java,呃。Java version的一个配置,一个测试。我们用一个拉姆的表达式。
01:04
创建一个新的线程。打一下后,现在这个肯定是可以跑的。是吧,没问题,但是如果说呢,我们把这个呃,关于JDK的这个版本这个部分哈,给它注释掉。我现在还没有保存啊,我现在还没有保存,然后呢,我们看一下这个这呢,这不是profiles哈,它在这有有有有有这样的一个设置,我现在呢,把这个给保存一下。这边呢,哎没等我刷新呢,这个profile这个东西就没有了,而且呢,还没等我来执行,这边就已经都编译都过不去,都报错了啊这告诉我什么呢?拉姆的表达式哈,说在这个JDK版本这五五这个地方呢,它是不能够,哎不被支持的。
02:04
说起来的话,也真想这个吐槽一下啊,也不算吐槽吧,就调侃一下,就是我们现在用的是3.8.3.8.5吧。啊,3.8.4,我们现在都已经是真的是咱们录视频的这个时候啊,最新版3.8.4了,然后这个ma呢,它默认呃,给我们选定的JDJDK的版本还是五。啊,这个时候这个我们GDK都出到十几了啊,十好几了,他还是这个墨守成规啊。那么这个时候我们可以使用呢,另外可以使用这个build标签这样的方式呢,来来指定一下啊。比如说build plugins plug不说了哈,这个时候我们给这个main comp插件进行一下定制啊,Configuration配一下source target都配成1.8,然后including这个是字符集设置为UTF杠八,把这一套呢给它拿过来。
03:10
哎。呃,把这个拿过来以后呢,你看诶idea它也不报错了啊,然后呢,我们这个时候这个运行它一下。也没问题了是吧,哎,就这个时候的话,我们怎么去理解这个S和这个target这样的这个含义的,哎,呃,官网上哈,官网上有对这个SS标签呢进行介绍。啊,翻译过来就是说呢,就这句话啊,翻译过来调用Java编译器命令时传入的杠S参数。那对编译器来说,杠S参数又是啥意思呢?啊,就是这时候我们就看到就是去去想到去看一下Java c这个命令。它里边的这个所谓杠S哈,提供与指定发行版的原兼容性,这个也都比较费解哈。
04:06
哎,我的理解是我们写代码是按JDK1.8写的,这就是原兼容性里边的原指定发行版呢,就是我们指定的JDK的1.8兼容性呢,是谁和谁兼容呢?哎,现在源代码是既定的,所以就是要求BA器使用的JDK版本来兼容我们的源代码。啊是是我我理解是这么个意思啊,这个东西是根据他的给提供的这么这么一个。一句话啊,然后这个是我我提供的一个我的理解,当然了,我觉得反正我觉得应该还是比较靠谱的哈,这个解释,因为很多时候啊,这个官方的东西呢。也可能是因为这个翻译的原因,也可能是因为我们干程序的人啊,都是理工男啊,语文都不太好,所以说这个呢,嗯,就是很多这个表述上面就很晦涩啊,就很很多这个话语呢,就说不清楚。
05:03
哎,像我这样啊,无论文科和理科都同样差的,这这样的人还是不偏科的人还是不太容易见到的哈。呃,然后呢,我们还要看到呢,就是说这个,呃。嗯,说source标签这哈,还有一个一个地方说user property is点点source啊,这是我们告诉我们可以使用的标签。呃,哎,说明呢,说这个工程还可以通过在properties标签中配置这个属性来实现,所以我们经常呢也会看到这样的设置啊,Properties里边1.8target加1.8。那这个target又是什么意思呢?哎,这句话啊,翻译过来就是调用Java编译器命令时传入的杠target参数,翻译过来呢,杠target是啥意思呢?就是呃,就是查看这个Java c命令的help参数哈,Help help参数看一下生成特定的VM版本的类文件。
06:09
我的理解啊,又来说我的理解。YM指的是JM类文件呢,指的是class自解码文件,整体意思就是原文件编译以后生成的点class自检码文件,要符合指定的JM的这个版本,诶。这些呢,是我们从这个S是从这个这个。呃,我们自己哈,去指定这个build的标签呢,这个地方呢,去引申出来的哈,这里边儿我们再来回过头再来说一下,说这个这个时候我们通过build的标签配置这个Java的就是配置我们指定JDK的版本和我们在SS里边去指定啊,它们之间的这个区别在哪。嗯。这个放在这儿来说哈。
07:00
把它作为第六,哎。嗯,两种配置方式的比较。哎。一种呢,是我们在settings里边去配的。一种呢,是在我们当前这个工程。的POMX毛哎当中去做的这个配置,在settings当中去进行的这个配置,哈,这个说的是啥意思呢。啊,不知道啥意思,就它的这个局限性在于哈,仅在我们本地生肖。啊,嗯。如果部署到,如果是在服务器端,或者说呢,如果啊,脱离我们当前这个settings.x毛啊能够覆盖的范围,则无法生效,对呀,你都出了setting.s毛它管辖的范围了,在别的地方去。
08:14
嗯,去去去去去编译了是吧,那当然就不管用了,而我们在当前这个工程里边去配置呢,它就无论在哪个环境。哎,执行这个编译等构建构建环节都有效。构建操作啊都有。呃,我怎么会到别的地方去编译呢,我们不都是打包好了传上去吗?也不是啊,你有可能呢,是在你这个本地哈。呃,推送到我们的版本控制中心,版本控制中心是你的源码,然后呢,我们再拿你的源码到这个,呃,上线的服务器上面再进行这个编译什么的,这个时候的话,我们这刚才说的这个配置就有意义了啊,因为那个时候服务器端说不定它没有配这个setting,到时候它就识别不了了,识别不了我们这个拉姆的表达式啊什么这些东西了啊,更高版本的JDK的这特性它就识别不了了。
我来说两句