Git+Maven

Git+Maven

  • 一 Git
    • 1.1 Git常用配置
    • 1.2 分支
    • 1.3 远程仓库
  • 二 Maven
    • 2.1 Maven依赖范围
    • 2.2 Maven常用设置
    • 2.3 Maven项目依赖
    • 2.4 分模块构建maven工程

一 Git

设置用户签名

git config --global user.name wcw
git config --global user.email [email protected]

1.1 Git常用配置

初始化本地库

git init

查看本地库状态

git status  

添加暂存区

将本地文件添加到暂存区

git add 文件/目录

移出暂存区

移除暂存区、但文件依然存在于工作目录

git rm --cached 文件/目录

提交本地库

将暂存区的文件提交到本地库

git commit -m "版本信息" 文件/目录

查看提交版本

git reflog //查看版本信息

git log    //查看详细的用户签名及其提交的版本信息

版本穿梭

git reflog  //通过命令,查看版本号
git reset --hard 版本号   //版本穿梭

1.2 分支

查看分支

git branch -v

创建分支

git branch 分支名

切换分支

git checkout 分支名

合并分支

git merge 分支名    //将指定分支合并到当前分支

产生冲突

合并分支时,两个分支在同一个文件的同一个位置有两套完全不同的修改,Git无法替我们决定使用哪一个,必须人为决定新代码内容


1.3 远程仓库

创建别名

git remote -v //查看当前所有远程库别名
  
git remote add 别名 远程地址

本地库推送

git push 别名/git链接 分支名

克隆远程仓库到本地

git clone 仓库地址

配置Git忽略文件

创建~/xxx.ignore文件
# 所有.log文件都不用要
*.log
# 所有.idea文件都不用要
*.idea  

二 Maven

pom.xml

​ gav --唯一定位一个maven项目

  1. groupId: 组织id,一般域名倒写+项目名

  2. artifactId:项目名称,也是模块名称对应groupId中项目中的子项目

  3. version:项目版本号。通常在版本后带 -SNAPSHOT

  4. name:项目的名称

packaging 项目打包类型

jar、war、rar、ear、pom(一般做父工程)。默认jar

properties

​ 配置属性,项目源码编码方式等

<properties>
				
		<maven.compiler.source>1.8maven.compiler.source>
		
		<maven.compiler.target>1.8maven.compiler.target>
		
		<project.build.sourceEncoding>UTF-8project.build.sourceEncoding>
		
		<project.reporting.outputEncoding>UTF-8project.reporting.outputEncoding>
properties>

relativePath

父项目的pom.xml文件的相对路径

插件plugings

​ maven功能:执行清理、编译、测试、报告、打包

  1. clean插件maven-clean-plugin:2.5
    清除target目录

  2. resources插件maven-resources-plugin:2.6
    把项目需要的配置文件拷贝到指定的目录,默认将src/main/resources目录下文件拷贝到classes目录下target/classes—>将配置文件加载到target

  3. compile插件maven-compiler-plugin
    执行前调用resources插件,将src/main/java源码编译成字节码文件生成class文件,再把编译好的class文件输出到target\classes目录下

  4. test测试插件

    把src\test\java下的代码编译成字节码输出到target\test-classes,同时把src\test\resources下的配置文件拷贝到target\test-classes

  5. package打包插件maven-jar-plugin
    把class文件、配置文件打成一个jar(war或其它格式)包

  6. deploy发布插件maven-install-plugin
    把构建好的artifact部署到本地仓库,还有一个deploy插件是将构建好的artifact部署到远程仓库

2.1 Maven依赖范围

范围依赖compile、provide、runtime、test、system

  1. compile:依赖作用在编译,测试,运行,由于运行时需要,所以编译范围的依赖会被打包(会被打包)
  2. test:依赖范围只在测试编译和测试运行时需要。不会打包
  3. provide: 依赖在编译和测试时需要,在运行时不需要。不会打包
  4. runtime:依赖范围在运行和测试系统时需要,但在编译时不需要。例如:jdbc的驱动包。由于运行时需要,所以runtime范围的依赖会被打包(会打包)
  5. system:范围依赖与provide类似,但是必须显示的提供一个对于本地系统中jar文件的路径

2.2 Maven常用设置

变量设置

  1. 全局变量

在pom.xml文件中,properties用于定义全局变量

POM中通过${property_name}的形式引用变量的值,定义全局变量

<properties>
		<spring.version>4.3.10.RELEASE</spring.version></properties>
  1. 引用局部变量

	org.springframework
	spring-context
	${spring.version}

指定资源位置

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/javadirectory>
	           <includes>
	               
	               <include>**/*.propertiesinclude>
	               <include>**/*.xmlinclude>
	               <include>**/*.txtinclude>
	           includes>
	           
	           <filtering>falsefiltering>
	       resource>
	   resources>
build>

2.3 Maven项目依赖

多个依赖之间,导致出现相同依赖并出现依赖的版本不一致。

依赖冲突解决

  1. 依赖调节原则: 第一申明者优先原则,在pom文件中定义依赖,优先使用先申明的依赖为准(依赖的顺序,靠前的优先考虑)

  2. 根据路径近者优先原则

  3. 如果一个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>ggroupId>
    <artifactId>aartifactId>
    <version>cversion>
    <exclusions>
        <exclusion>
             <groupId>排除的ggroupId>
             <artifactId>排除的aartifactId>
        exclusion>
     exclusions>
dependency>

版本锁定

采用直接锁定版本的方法确定依赖jar包的版本,版本锁定后则不考虑依赖的声明顺序或依赖的路径,以锁定的版本为准添加到工程中

dependencyManagement标签中锁定依赖的版本

<dependencyManagement>
  <dependencies>
  dependencies>  
dependencyManagement>  

2.4 分模块构建maven工程

分模块构建maven工程

按业务模块进行拆分,每个模块拆分成一个maven工程

maven工程的继承

maven工程之间,子工程继承父工程后,就可以使用父工程中引入的依赖

父工程的打包方式必须是pom 继承其他maven父工程的项目在pom文件中通过parent标签进行父工程的继承

父工程
<groupId>com.projectgroupId>
<artifactId>parentartifactId>
<version>1.0-SNAPSHOTversion>
<packaging>pompackaging>

子工程
<parent>
		<groupId>com.projectgroupId>
		<artifactId>parentartifactId>
		<version>1.0-SNAPSHOTversion>
parent>  

maven工程聚合

pom.xml中使用标签将其他maven工程聚合到一起,聚合的目的进行统一操作

<groupId>org.examplegroupId>
    <artifactId>ThreadartifactId>
    <version>1.0-SNAPSHOTversion>
<modules>
    <module>maven_daomodule>
    <module>maven_servicemodule>
    <module>maven_webmodule>
    <module>maven_pojomodule>
modules>

你可能感兴趣的:(JAVA实习,git,maven,java)