2.5Maven pom.xml介绍
常用标签:
modelVersion maven的模型版本,跟随maven定义,一般不能修改。
groupId
项目的组织,一般是顶级域名名称+公司或者组织名称,如alibaba的项目组织为com.alibaba,如果你们公司的域名为www.abc.com,那你们的项目组织最好就以com.abc命名。
artifactId
项目的名称,也是项目之间引进依赖的重要标识。像alibaba有个dubbo项目,dubbo项目可能又关联了许多子项目,所以artifactId就会定义有dubbo、dubbo-config这样的工程。
version
项目的版本,项目迭代开发,可能经历许多个版本,靠这个定义,默认是打包的组成部分,如dubbo-2.8.4.jar。另外,版本有两个概念,0.0.1-SNAPSHOT这样的是快照版本,0.0.1-RELEASE或者不带SNAPSHOT的就是RELEASE版本。
packaging 打包类型,有这几种类型:pom, jar, maven-plugin, ejb, war, ear, rar,
par,默认不填就是jar包,一般常用的是pom、jar、war。
properties
配置公共属性,如spring-web,spring-aop你要依赖这两个,它们肯定是同一个版本的如4.5.0,可以把版本号放在属性上统一管理,也方便维护。
dependecies
配置工程的依赖信息
builds
用来管理执行maven声明周期的,包括plugins,maven-dependency-plugin,resources
2.6Maven 工程案例-生成二维码
1.基于IDEA或是Eclipse构建Maven工程
设定GAV坐标:
edu.hncj
VIP01
1.0-SNAPSHOT
添加pom依赖
在工程下的pom.xml中,新增如下标签:
<dependencies> <!-- 定义二维码生成的库--> <dependency> <groupId>com.google.zxing</groupId> <artifactId>core</artifactId> <version>3.3.1</version> </dependency> <dependency> <groupId>com.google.zxing</groupId> <artifactId>javase</artifactId> <version>3.3.1</version> </dependency> </dependencies> <build> <plugins> <!-- 定义maven的打包编译插件 --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.6.0</version> <configuration> <source>1.8</source> <target>1.8</target> <encoding>UTF-8</encoding> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-assembly-plugin</artifactId> <version>3.1.1</version> <configuration> <!-- <archive>--> <!-- <manifest>--> <!-- <mainClass>org.example.HttpClientTest</mainClass>--> <!-- </manifest>--> <!-- </archive>--> <descriptorRefs> <descriptorRef>jar-with-dependencies</descriptorRef> </descriptorRefs> <encoding>UTF-8</encoding> </configuration> <executions> <execution> <id>make-assembly</id> <phase>package</phase> <goals> <goal>single</goal> </goals> </execution> </executions> </plugin> </plugins> </build>
编写Java代码
edu.hncj.VIP01包下,创建QRCodeGenerator类,内容如下:
package edu.hncj.VIP01; import java.io.ByteArrayOutputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStream; import java.util.HashMap; import java.util.Map; import com.google.zxing.BarcodeFormat; import com.google.zxing.EncodeHintType; import com.google.zxing.MultiFormatWriter; import com.google.zxing.WriterException; import com.google.zxing.client.j2se.MatrixToImageWriter; import com.google.zxing.common.BitMatrix; import com.google.zxing.qrcode.decoder.ErrorCorrectionLevel; public class QRCodeGenerator { public static byte[] createQRCode(int width, int height, String content) throws WriterException, IOException { // 二维码基本参数设置 Map<EncodeHintType, Object> hints = new HashMap<EncodeHintType, Object>(); hints.put(EncodeHintType.CHARACTER_SET, "utf-8");// 设置编码字符集utf-8 hints.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.M);// 设置纠错等级L/M/Q/H,纠错等级越高越不易识别,当前设置等级为最高等级H hints.put(EncodeHintType.MARGIN, 0);// 可设置范围为0-10,但仅四个变化0 1(2) 3(4 5 6) 7(8 9 10) // 生成图片类型为QRCode BarcodeFormat format = BarcodeFormat.QR_CODE; // 创建位矩阵对象 BitMatrix bitMatrix = new MultiFormatWriter().encode(content, format, width, height, hints); // 设置位矩阵转图片的参数 // MatrixToImageConfig config = new MatrixToImageConfig(Color.black.getRGB(), Color.white.getRGB()); // 位矩阵对象转流对象 ByteArrayOutputStream os = new ByteArrayOutputStream(); MatrixToImageWriter.writeToStream(bitMatrix, "png", os); return os.toByteArray(); } public static void main(String[] args) throws WriterException, IOException { byte[] b = createQRCode(100, 100, "遇见最好的自己!"); OutputStream os = new FileOutputStream("E:\\bestme.png"); os.write(b); os.close(); } }
右键执行,即可运行成功,同时在E盘根目录下,生成bestme.png文件,用微信扫描二维码后,可看到信息 “遇见最好的自己!”
打包生成jar,并且执行
双击maven下的package,会在target生成jar包
进入到G:\ideaproject\VIP01\targe目录下,输入CMD,然后再命令行窗口输入
G:\ideaproject\VIP01\target>java -cp VIP01-1.0-SNAPSHOT-jar-with-dependencies.jar edu.hncj.VIP01.QRCodeGe
执行代码,会在E盘根目录下生成bestme.png图片
3.Git专题
3.1Git简介
Git是目前世界上最先进的分布式版本控制系统(没有之一)。
Git有什么特点?简单来说就是:高端大气上档次!由linux之父Linus编写。
3.2工作区、暂存区、本地仓库、远程仓库
Git有
workspace: 工作区
index/Stage: 暂存区
Repository: 本地仓库
Remote: 远程仓库
四个区域,具体作业如下图:
四个区域,具体作业如下图:
平时我们写的代码都是在工作区,执行add命令后就是提交到了暂存区,再执行commit命令后就把代码提交到了版本库了,最后再执行push命令把本地代码提交到远程版本库。下图也基本是这个意思。
3.3Git安装
到Git官网下载,网站地址:https://git-scm.com/downloads
下一步安装即可
安装完成,配置用户名和邮箱
$ git config --global user.name "Your Name" $ git config --global user.email "email@example.com"
查看用户名和邮箱地址
$ git config user.name $ git config user.email
修改局部用户名和邮箱地址:
$ cd ~/you project $ git config user.name "username" $ git config user.email "email"