//
名人名言
//
昨日翻译
Life is tough,but you can be tougher.
生活很艰苦,但是你可以变的更坚强。
今日名言
Do not teach fish to swim.
//
2019.03.13问题及解析
//
请问pom.xml文件是什么意思,文件有什么作用,我们可以对它进行哪些配置?
答案与解析
知识基础
提到pom.xml就不得不提及maven,如果你使用的开发工具是idea,你就会看到pom.xml的图标和其它图标有所区别,它的文件图标是一个蓝蓝的英文字母m,说到这里大家应该也就明白了,没错,这个m的意思就是maven,那么maven又是什么意思呢?我们简单的查询就可以知道它时一个项目管理工具,是由Apache公司发布的开源项目,当我们单独使用它时其实是要和我们的jdk一样通过配置环境变量后在控制台进行操作的,但是我们的idea整合它之后,我们只用更改配置文件后,选择右下角的import changes,就能够执行相应的命令,将相应的jar文件导入到我们的项目当中,极大的便利我们的项目管理。
与它功能类似的工具还有Ant,和gradle,前者是它的前辈,而后者则是它的后辈,感兴趣的小伙伴也可以去了解一下,gradle我们在进行生成项目可以看到有一个选项,就能够进行相应的创建,可以按照官方指引尝试一下用gradle构建我们的springboot哦!
题目内容
我们首先了解了maven,那么pom.xml与它有什么关系呢,又是什么意思呢?
pom的英文全称是project object model,也就是项目对象模型,它就是maven的核心,没有它的话,maven就毫无用处,maven完全是根据pom中的内容完成对我们项目的构建。它能配置的东西有很多,我们就按照springboot项目中的配置来初步的了解一下它能进行哪些配置。
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.3.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.test</groupId>
<artifactId>test</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>demo</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
(可左右滑动哦)
可以看到首先使我们的xml文件的版本和编码的配置,建议大家去了解一下xml文件更好的来理解它。
首先我们理解四个配置项,所有的maven项目都必须有这四个配置项
<modelVersion>顾名思义模型版本
<groupId>项目组的标识符,我们start.spring.io上配置的group其实也就是这个位置
<artifactId>项目的一个模块的标识符,start.spring.io上配置的artifact
<version>就是定义我们当前项目的版本号
看到上面还用到<parent>这个就很像我们java中的继承,就直接引用父项目中的依赖,就可以大量减少我们当前的pom.xml中所要编写的内容,因为这里我们使用的springboot,那必然要使用到springboot相关的jar文件,那这里直接配置<parent>就能够引入我们springboot的相关配置,还能看到这里用的是2.1.3,也就是我们在start.spring.io中所选到的spring boot的版本
那么接下来就来到了我们刚才所提到的jar包进行配置的地方,也就是<dependencies>我们项目所有相关的依赖,我们可以看到这里用到了groupId、artifactId这里与之前类似,还用到了<scope>这里是定义了我们依赖的范围,test则是指我们进行test任务时使用。
那么它还有一个<type>的配置这里没有提到,它的默认值就是jar,也就是我们依赖的文件的扩展名,通常都会是jar包,也会有例外,比如war,我们需要具体情况具体分析。
<build>则是我们构建项目所需要的信息
<plugins>则是构建我们项目所需要的插件列表
pom.xml文件中还有很多的配置和相应的属性,这里就不再赘述,感兴趣的小伙伴们希望大家自行探索。
今天实名表扬
星火????燎原 小伙伴,现在开始扩展,打开自己,才能学到更多知识,加油!
//
2019.03.14问题
//
public class ThreadTest {
public static void main(String[] args) {
Thread thread = new Thread(() -> {
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.print("小");
});
thread.start();
try {
thread.join();
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.print("刀");
}
}
1.请问上述程序的执行结果为:
A.小刀
B.刀小
C.可能为小刀,也可能为刀小
D.以上答案均不正确
2.为什么?
//
往期回顾
//
java每日一练(19_03_13) (pom.xml文件)
java每日一练(19_03_12) (输出结果)
java每日一练(19_03_11) (程序的输出结果)
java每日一练(19_03_10) (程序题 三个问题)
java每日一练(19_03_09) (程序的输出结果)
java每日一练(19_03_08) (程序题 异常 输出)
java每日一练(19_03_07) (MVC框架)
//
提升自己
//
听到很多小伙伴问小刀哥有什么书推荐看的,看视频也好,看书也罢,能学到知识就行了。但是小刀还是推荐大家多看书,多动脑筋思考。现在小刀给大家带福利啦,扫描下方二维码就能获得福利,价格都比某宝某东便宜哦!!而且全都包邮哦!!
//
加入我们吧~
//
眼过千遍,不如手过一遍,一定一定要把自己的想法写出来(想法不论对错,写你所想就是进步),这样才会有所收获,你的每一个留言和分享小刀都会认真回复,彼此学习共同进步~
小刀和小伙伴在学习群里等你来一起监督学习哦,坚持!加油!进群请加小刀微信: best396975802
感谢所有在后台留言的小伙伴们,每一分的付出都会收到回报,你们都是最棒的哦!
END
微信群请点击公众号菜单进微信群
文字|天堂
排版|花音
点个好看再走吧~(づ ̄3 ̄)づ╭❤