欢迎光临
我们一直在努力

jacoco学习

一、搭建基本环境(JDK+IDEA+maven

1.1 JDK下载地址

https://www.oracle.com/java/technologies/javase-downloads.html

1.2 IDEA下载地址

https://www.jetbrains.com/

1.3 IDEA破解

http://lookdiv.com/code

1.4 MAVEN

idea自带maven,一般来说不需要再次下载,如果需要自行下载,地址如下:

http://maven.apache.org/download.cgi

jacoco学习

使用自定义maven和更改阿里云源(下载源必须要改,不然很慢)

jacoco学习

 

找到settings.xml文件

jacoco学习

 

在文件里找到具体位置

jacoco学习

 

 此时,我们需要在maven的安装路径下面的conf文件夹下面对settings.xml进行编辑,写入我们自己存放maven仓库的位置,然后保存(如果更改了仓库位置的话)

jacoco学习

 

 修改为阿里源,我们找到<mirrors>这里,将下列的话复制进去,保存

<!-- 配置阿里云仓库 --> <mirror> <id>alimaven</id> <mirrorOf>central</mirrorOf> <name>aliyun maven</name> <url>http://maven.aliyun.com/nexus/content/groups/public/</url> </mirror>

二、maven是什么

Maven的核心功能便是合理叙述项目间的依赖关系。

通俗点讲,就是通过pom.xml文件的配置获取jar包,而不用手动去添加jar包,而这里pom.xml文件对于学了一点maven的人来说,就有些熟悉了,怎么通过pom.xml的配置就可以获取到jar包呢?pom.xml配置文件从何而来?等等类似问题我们需要搞清楚,如果需要使用pom.xml来获取jar包,那么首先该项目就必须为maven项目,maven项目可以这样去想,就是在java项目和web项目的上面包裹了一层maven,本质上java项目还是java项目,web项目还是web项目,但是包裹了maven之后,就可以使用maven提供的一些功能了(通过pom.xml添加jar包)。

所以,根据上一段的描述,我们最终的目的就是学会如何在pom.xml中配置获取到我们想要的jar包,在此之前我们就必须了解如何创建maven项目,maven项目的结构是怎样,与普通java,web项目的区别在哪里,还有如何配置pom.xml获取到对应的jar包等等。

2.1 Maven POM

POM( Project Object Model,项目对象模型 ) 是 Maven 工程的基本工作单元,是一个XML文件,包含了项目的基本信息,用于描述项目如何构建,声明项目依赖,等等。

在创建 POM 之前,我们首先需要描述项目组 (groupId), 项目的唯一ID。

<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> <!-- 公司或者组织的唯一标志,并且配置时生成的路径也是由此生成, 如com.companyname.project-group,maven会将该项目打成的jar包放本地路径:/com/companyname/project-group --> <groupId>com.companyname.project-group</groupId> <!-- 项目的唯一ID,一个groupId下面可能多个项目,就是靠artifactId来区分的 --> <artifactId>project</artifactId> <!-- 版本号 --> <version>1.0</version> <packaging>jar</packaging> </project>

所有 POM 文件都需要 project 元素和三个必需字段:groupId,artifactId,version。

节点 描述
project 工程的根标签。
modelVersion 模型版本需要设置为 4.0。
groupId 这是工程组的标识。它在一个组织或者项目中通常是唯一的。例如,一个银行组织 com.companyname.project-group 拥有所有的和银行相关的项目。
artifactId 这是工程的标识。它通常是工程的名称。例如,消费者银行。groupId 和 artifactId 一起定义了 artifact 在仓库中的位置。
version

这是工程的版本号。在 artifact 的仓库中,它用来区分不同的版本。例如:

com.company.bank:consumer-banking:1.0
com.company.bank:consumer-banking:1.1
packaging 项目打包的类型,可以使jar、war、rar、ear、pom,默认是jar

2.2 仓库的概念

通过pom.xml中的配置,就能够获取到想要的jar包(还没讲解如何配置先需要了解一下仓库的概念),但是这些jar是在哪里呢?就是我们从哪里获取到的这些jar包?答案就是仓库。

仓库分为:本地仓库、第三方仓库(私服)、中央仓库

本地仓库

Maven会将工程中依赖的构件(Jar包)从远程下载到本机一个目录下管理,每个电脑默认的仓库是在 $user.home/.m2/repository下,例如我的就在:C:\Users\Administrator\.m2\repository。

一般我们会修改本地仓库位置,自己创建一个文件夹,在从网上下载一个拥有相对完整的所有jar包的结合,都丢到本地仓库中,然后每次写项目,直接从本地仓库里拿就行了

这里面有很多各种各样我们需要的jar包。

修改本地库位置:在$MAVEN_HOME/conf/setting.xml文件中修改,

D:\java\maven\repository:就是我们自己创建的本地仓库,将网上下载的所有jar包,都丢到该目录下,我们就可以直接通过maven的pom.xml文件直接拿。

  第三方仓库

第三方仓库,又称为内部中心仓库,也称为私服

私服:一般是由公司自己设立的,只为本公司内部共享使用。它既可以作为公司内部构件协作和存档,也可作为公用类库镜像缓存,减少在外部访问和下载的频率。(使用私服为了减少对中央仓库的访问

私服可以使用的是局域网,中央仓库必须使用外网,也就是一般公司都会创建这种第三方仓库,保证项目开发时,项目所需用的jar都从该仓库中拿,每个人的版本就都一样。

注意:连接私服,需要单独配置。如果没有配置私服,默认不使用

中央仓库

Maven内置了远程公用仓库:http://repo1.maven.org/maven2

这个公共仓库是由Maven自己维护,里面有大量的常用类库,并包含了世界上大部分流行的开源项目构件。目前是以java为主

工程依赖的jar包如果本地仓库没有,默认从中央仓库下载

2.3 dependencies和dependency

前者包含后者。前面说了,Maven的一个重要作用就是统一管理jar包,为了一个项目可以build或运行,项目中不可避免的,会依赖很多其他的jar包,在Maven中,这些依赖就被称为dependency。

说到这里,就有一个本地仓库和远程仓库的概念了。本地仓库和远程仓库是这样的,Maven工程首先会从本地仓库中获取jar包,当无法获取指定jar包时,本地仓库会从远程仓库(中央仓库)中下载jar包,并放入本地仓库以备将来使用。本次仓库路径:c:\用户\{找到计算机用户}\.m2。远程仓库默认使用的是http://repo2.maven.org/maven2/,但是我们也可以修改。

举个例子,比方说我的项目中用到了MyBatis,那么pom可以添加这段配置:

<dependencies> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.2.5</version> </dependency> </dependencies>

点击ctrl+s保存,Eclipse就会自动到远程仓库里下载mybatis的jar包到本地仓库,通过groupId、artifactId、version唯一标识一个Maven项目,有了这三个元素,我们就可以去远程仓库下载,如果本地仓库里已经有该jar包了,则不会到远程仓库下载。

2.4 properties

properties是用来定义一些配置属性的,例如project.build.sourceEncoding(项目构建源码编码方式),可以设置为UTF-8,防止中文乱码,也可定义相关构建版本号,便于日后统一升级。通过${}可以在dependency引用该模块定义的属性。

<properties> <mybatis.version>3.2.5</mybatis.version> </properties> <dependencies> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>${mybatis.version}</version> </dependency> </dependencies> 

如上代码,我们在properties中定义了一个mybatis.version的属性,然后再下面的version里面就可以引用该属性了。

2.5 远程仓库修改

<repositories> <repository> <id>Dcm4Che</id> <name>Dcm4Che</name> <url>http://www.dcm4che.org/maven2/</url> <releases> <enabled>true</enabled> </releases> <snapshots> <enabled>false</enabled> </snapshots> </repository> </repositories>

标签的含义如下:

  • id maven仓库的id(自定义)

  • name maven仓库的名称(自定义)

  • url maven仓库的url(可以替换为阿里的镜像仓库:http://maven.aliyun.com/nexus/content/groups/public/,可以是自己搭建的maven私服)

  • releases maven仓库中版本为release的包

  • snapshots maven仓库中版本为snapshots的包

2.6 Maven 构建生命周期

一个典型的 Maven 构建(build)生命周期是由以下几个阶段的序列组成的:

 jacoco学习

 

 

阶段 处理 描述
验证 validate 验证项目 验证项目是否正确且所有必须信息是可用的
编译 compile 执行编译 源代码编译在此阶段完成
测试 Test 测试 使用适当的单元测试框架(例如JUnit)运行测试。
包装 package 打包 创建JAR/WAR包如在 pom.xml 中定义提及的包
检查 verify 检查 对集成测试的结果进行检查,以保证质量达标
安装 install 安装 安装打包的项目到本地仓库,以供其他项目使用
部署 deploy 部署 拷贝最终的工程包到远程仓库中,以共享给其他开发人员和工程

常用的maven命令如下:

1. 编译源代码:

mvn compile

2. 运行测试:

mvn test

3. 打包:

mvn package

4.打包到本地仓库(.m2路径下)

mvn install

5.清除产生的项目(清楚target目录文件)

mvn clean

6.上传到私服

mvn deploy

7.组合命令

mvn clean install --清楚打包 mvn -Dtest package 跳过测试 只打包

三、使用命令行管理maven项目

3.1、创建maven java项目

参考1.4

3.2 maven java项目结构

simple ---pom.xml 核心配置,项目根下 ---src ---main ---java java源码目录 ---resources java配置文件目录 ---test ---java 测试源码目录 ---resources 测试配置目录 

jacoco学习

 

图中有一个target目录,是因为将该java项目进行了编译,src/main/java下的源代码就会编译成.class文件放入target目录中,target就是输出目录。

3.3、创建 maven web 项目

直接用idea创建

3.4、maven web项目结构

pom.xml 核心配置 src/main/java java源码 src/main/resources java配置 src/main/webapp myeclipse web项目中 WebRoot目录 |-- WEB-INF |-- web.xml src/test 测试 target 输出目录

 

 

  • 海报
海报图正在生成中...
赞(0) 打赏
声明:
1、本博客不从事任何主机及服务器租赁业务,不参与任何交易,也绝非中介。博客内容仅记录博主个人感兴趣的服务器测评结果及一些服务器相关的优惠活动,信息均摘自网络或来自服务商主动提供;所以对本博客提及的内容不作直接、间接、法定、约定的保证,博客内容也不具备任何参考价值及引导作用,访问者需自行甄别。
2、访问本博客请务必遵守有关互联网的相关法律、规定与规则;不能利用本博客所提及的内容从事任何违法、违规操作;否则造成的一切后果由访问者自行承担。
3、未成年人及不能独立承担法律责任的个人及群体请勿访问本博客。
4、一旦您访问本博客,即表示您已经知晓并接受了以上声明通告。
文章名称:《jacoco学习》
文章链接:https://www.456zj.com/38175.html
本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址