设置用户签名
git config --global user.name wcw
git config --global user.email 111@qq.com
初始化本地库
git init
查看本地库状态
git status
添加暂存区
将本地文件添加到暂存区
git add 文件/目录
移出暂存区
移除暂存区、但文件依然存在于工作目录
git rm --cached 文件/目录
提交本地库
将暂存区的文件提交到本地库
git commit -m "版本信息" 文件/目录
查看提交版本
git reflog //查看版本信息
git log //查看详细的用户签名及其提交的版本信息
版本穿梭
git reflog //通过命令,查看版本号
git reset --hard 版本号 //版本穿梭
查看分支
git branch -v
创建分支
git branch 分支名
切换分支
git checkout 分支名
合并分支
git merge 分支名 //将指定分支合并到当前分支
产生冲突
合并分支时,两个分支在同一个文件的同一个位置有两套完全不同的修改,Git无法替我们决定使用哪一个,必须人为决定新代码内容
创建别名
git remote -v //查看当前所有远程库别名
git remote add 别名 远程地址
本地库推送
git push 别名/git链接 分支名
克隆远程仓库到本地
git clone 仓库地址
配置Git忽略文件
创建~/xxx.ignore文件
# 所有.log文件都不用要
*.log
# 所有.idea文件都不用要
*.idea
pom.xml
gav --唯一定位一个maven项目
groupId: 组织id,一般域名倒写+项目名
artifactId:项目名称,也是模块名称对应groupId中项目中的子项目
version:项目版本号。通常在版本后带 -SNAPSHOT
name:项目的名称
packaging 项目打包类型
jar、war、rar、ear、pom(一般做父工程)。默认jar
properties
配置属性,项目源码编码方式等
<properties>
<!--源码编译jdk版本-->
<maven.compiler.source>1.8</maven.compiler.source>
<!--运行代码的jdk版本-->
<maven.compiler.target>1.8</maven.compiler.target>
<!--项目构建使用的编码,避免中文乱码-->
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<!--生成报告的编码-->
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
</properties>
relativePath
父项目的pom.xml文件的相对路径
插件plugings
maven功能:执行清理、编译、测试、报告、打包
clean插件maven-clean-plugin:2.5
清除target目录
resources插件maven-resources-plugin:2.6
把项目需要的配置文件拷贝到指定的目录,默认将src/main/resources目录下文件拷贝到classes目录下target/classes—>将配置文件加载到target
compile插件maven-compiler-plugin
执行前调用resources插件,将src/main/java源码编译成字节码文件生成class文件,再把编译好的class文件输出到target\classes目录下
test测试插件
把src\test\java下的代码编译成字节码输出到target\test-classes,同时把src\test\resources下的配置文件拷贝到target\test-classes
package打包插件maven-jar-plugin
把class文件、配置文件打成一个jar(war或其它格式)包
deploy发布插件maven-install-plugin
把构建好的artifact部署到本地仓库,还有一个deploy插件是将构建好的artifact部署到远程仓库
范围依赖compile、provide、runtime、test、system
变量设置
- 全局变量
在pom.xml文件中,properties用于定义全局变量
POM中通过${property_name}的形式引用变量的值,定义全局变量
<properties>
<spring.version>4.3.10.RELEASE</spring.version></properties>
- 引用局部变量
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${spring.version}</version>
</dependency>
指定资源位置
src/main/java和src/test/java这两个目录中的所有*.java文件会分别在comile和test-comiple阶段被编译,编译结果分别放到了target/classes和targe/test-classes目录中,但这两个目录中的其他文件都会被忽略掉,如果需要把src目录下的文件包放到target/classes目录,作为输出的jar一部分。要指定资源文件位置。
<build>
<resources>
<resource>
<!--所在的目录-->
<directory>src/main/java</directory>
<includes>
<!--包括目录下的.properties,.xml 文件都会扫描到-->
<include>**/*.properties</include>
<include>**/*.xml</include>
<include>**/*.txt</include>
</includes>
<!--filtering 选项 false 不启用过滤器, *.property 已经起到过滤的作用了 -->
<filtering>false</filtering>
</resource>
</resources>
</build>
多个依赖之间,导致出现相同依赖并出现依赖的版本不一致。
依赖冲突解决
依赖调节原则: 第一申明者优先原则
,在pom文件中定义依赖,优先使用先申明的依赖为准(依赖的顺序,靠前的优先考虑)
根据路径近者优先原则
如果一个pom引入两个相同jar包,以最后一个为准
可选依赖optional
加入optional,控制当前依赖能否被传递,true不能传递,false默认,能传递
<dependency>
<groupId>com.xiaozhi</groupId>
<artifactId>A</artifactId>
<version>1.0-SNAPSHOT</version>
<!-- optional=true,依赖不会传递,该项目依赖A
之后依赖该项目的项目如果想要使用A,需要重新引入 -->
<optional>true</optional>
</dependency>
排除依赖
使用exclusions标签将传递过来的依赖排除出去
<dependency>
<groupId>g</groupId>
<artifactId>a</artifactId>
<version>c</version>
<exclusions>
<exclusion>
<groupId>排除的g</groupId>
<artifactId>排除的a</artifactId>
</exclusion>
</exclusions>
</dependency>
版本锁定
采用直接锁定版本的方法确定依赖jar包的版本,版本锁定后则不考虑依赖的声明顺序或依赖的路径,以锁定的版本为准添加到工程中
dependencyManagement标签中锁定依赖的版本
<dependencyManagement>
<dependencies>
</dependencies>
</dependencyManagement>
分模块构建maven工程
按业务模块进行拆分,每个模块拆分成一个maven工程
maven工程的继承
maven工程之间,子工程继承父工程后,就可以使用父工程中引入的依赖
父工程的打包方式必须是pom
继承其他maven父工程的项目在pom文件中通过parent标签
进行父工程的继承
父工程
<groupId>com.project</groupId>
<artifactId>parent</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>pom</packaging>
子工程
<parent>
<groupId>com.project</groupId>
<artifactId>parent</artifactId>
<version>1.0-SNAPSHOT</version>
</parent>
maven工程聚合
pom.xml中使用<modules>
标签将其他maven工程聚合到一起,聚合的目的进行统一操作
<groupId>org.example</groupId>
<artifactId>Thread</artifactId>
<version>1.0-SNAPSHOT</version>
<modules>
<module>maven_dao</module>
<module>maven_service</module>
<module>maven_web</module>
<module>maven_pojo</module>
</modules>