前言
课程在中国大学MOOC上有的,关键词Java核心技术(进阶)。
你们可能对这门课的赚钱能力没有一个认识,但你们现在每写一行代码就能赚一块钱。 ——cly
知识点
1.构建工具
怎样导入第三方库以便我们调用现成的方法?(例如调用已有的第三方库 A p a c h e C o m m o n s M a t h ApacheCommons Math ApacheCommonsMath中有现成函数API – o r g . a p a c h e . c o m m o n s . m a t h 3. u t i l . A r i t h m e t i c U t i l s –org.apache.commons.math3.util. ArithmeticUtils –org.apache.commons.math3.util.ArithmeticUtils求两个整数的最大公约数 )
传统方法
步骤
1. 搜索引擎搜索Apache Commons Math
2. 找到官网,确定相应版本和下载路径
3. 下载到本地,找到里面的jar文件
4. 新建Java项目
5. 将jar文件添加到Java Build Path –右键项目,Properties->Libraries标签页->Add External JARs, 添加 6. 开始编码、测试
优缺点
- 优点
1. 第三方库很强大,要学会在巨人肩膀上工作 - 缺点
1. 搜索、确定版本、下载jar包,工作量大且不易
2. 需要手动把jar包添加到项目build path
3. 代码拷贝到别人的机器,需要同样的配置路径
是否存在一种自动下载、管理jar包又能配置build path的构建工具呢?
2.Maven基础概念和实战
Maven基础概念
- Maven开发流程
1. 新建Maven项目
2. 在中央仓库查找第三方jar的依赖文本
3. 拷贝依赖文本至项目的pom.xml
4. 执行maven build,编译/构建整个项目 - Maven是一个软件,http://maven.apache.org/下载
- Maven也有一个中心仓库,https://mvnrepository.com/。
包含很多第三方软件。可以有很多第三方的Maven仓库。
- Maven是一个构建工具,自动下载中心仓库的jar文件,存在本地进行管理,编译、测试、运行、和打包发布Java项目。
- Maven编译工作流程
- POM( Project Object Model )
- XML格式
- 包含了项目信息、依赖信息、构建信息
- 构件信息(artifact) –groupId:组织 –artifactId:产品名称 –version:版本
- Maven项目的目录结构
创建Maven项目
直接创建
- 新建一个项目
- 勾选第一个选项可以省去一些配置步骤,更加快捷;勾选第二个选项直接在工作文件夹目录下创建项目。
- 设置信息
groupId:组织名
artifactId:作品(项目)名
Name:别名(optional)
Description: 描述(optional)
间接创建
创建普通Java Project,再转化为Maven项目,修改pom.xml
导入第三方jar包
-
在mvn中央仓库(mvnrepository.com)中搜索Commons Math,并选择版本
-
将Apache Commons Math依赖文本加到项目pom.xml中
Maven编译
- Maven编译和运行:右键项目->Run as ->Maven Build
- 配置Maven build的内容(第一次配置,后续不用配置)
- 编译成功,控制台输出
Build Success
问题
可能会有一些奇怪的问题,不过谷歌一下基本都能解决
- 不再支持源选项 5。请使用 7 或更高版本。
解决方法:
在pom.xml文件里加一段
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.encoding>UTF-8</maven.compiler.encoding>
<java.version>1.8</java.version>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>
- 下载依赖包速度慢
在IDE下载jar时,无法对IDE做任何动作,只能大眼对小眼。eclipse下载速度极慢,一个14kb的文件往往需要想下载好几分钟。一个项目下来,无数个jar包,不知道得浪费多长时间,下载jar包速度慢究其原因就是因为很多资源都是国外的,我们下载一个小文件几乎就跨越了一个太平洋那么远。
解决办法:
https://www.jianshu.com/p/7805fe4e652e
练习
给定一个汉字句子,可以输出句子的读音。可以借鉴第三方库:pinyin4j 。这个是网址:https://mvnrepository.com/artifact/com.belerweb/pinyin4j 。要求工程是Maven项目。需要Maven编译成功的截图、程序运行的截图、和代码截图。
//Trans.java
import net.sourceforge.pinyin4j.PinyinHelper;
public class Trans {
public static String TranstoPinyin(String str) {
String res="";
for(int i=0;i<str.length();i++) {
String[] Temp=new String[10];
Temp=PinyinHelper.toHanyuPinyinStringArray(str.charAt(i));
res+=Temp[0];
}
return res;
}
public static void main(String[] args) {
String test="这是一串中文";
String Pinyin= TranstoPinyin(test);
System.out.println(Pinyin);
}
}
//pom.xml
<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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>MOOC1Maven</groupId>
<artifactId>MOOC1Maven</artifactId>
<version>0.0.1-SNAPSHOT</version>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.encoding>UTF-8</maven.compiler.encoding>
<java.version>1.8</java.version>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>
<dependencies>
<dependency>
<groupId>com.belerweb</groupId>
<artifactId>pinyin4j</artifactId>
<version>2.5.1</version>
</dependency>
</dependencies>
</project>