Maven简介以及idea配置

maven简介

Maven 翻译为"专家"、“内行”,是 Apache 下的一个纯 Java 开发的开源项目。基于项目对象模型(缩写:POM,Project Object Model)概念,Maven利用一个中央仓库能管理一个项目的构建、报告和文档等步骤。
Maven 是一个项目管理工具,可以对 Java 项目进行构建、依赖管理。

1.1 Maven核心功能

传统项目的问题:
1 需要把jar复制到项目中,繁琐
2 项目体积更大,不利于维护
3 不利于团队开发

Maven主要有两大核心功能:
1. 依赖管理。(jar包的管理)
2. 项目构建。(清理、编译、单元测试、打包、安装、部署、运行)

1.2Maven程序目录结构

约定大于配置:能使用约定好的方式,就不要配置。
手动创建:
maven_hello
----src
-------main
----------java
-------------com
-----------------qf
--------------------Hello.java
resources
webapp (web项目)
-------test
----------java
-------------com
-----------------qf
-------------------test
----------------------HelloTest.java
----------resources
-----pom.xml
src/main/java:存放项目的.java文件
src/main/resources:存放项目资源文件。如配置文件
src/test/java:存放所有测试的.java文件.如Junit测试类
src/test/resources:测试资源文件
【target:项目输出位置(可以自动生成)】
pom.xml(maven项目核心配置文件)

  • pom.xml配置文件:
<?xml version="1.0" encoding="UTF-8"?>
<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>

  	<!--组织id com.qf.maven   GAV坐标 -->
    <groupId>com.qf.maven</groupId>
	<!--项目名 模块名-->
    <artifactId>maven_hello</artifactId>
	<!--项目版本  SNAPSHOT 快照 不稳定版本  RELEASE 发布版 稳定-->
    <version>1.0-SNAPSHOT</version>
	<!--打包形式  jar包-->
    <packaging>jar</packaging>
	<!--依赖-->
	<dependencies>
		<dependency>
		  <groupId>junit</groupId>
		  <artifactId>junit</artifactId>
		  <version>4.12</version>
		  <scope>test</scope>
		</dependency>
	</dependencies>
</project>

使用命令同样可以创建依赖:

mvn archetype:generate -DgroupId=com.qf.maven -DartifactId=maven02 -DinteractiveMode=false -DarchetypeCatalog=internal

1.3 Maven常见命令

Maven的另一个核心功能是项目构建。

构建包括:清理、编译、测试、打包、安装、部署、运行等。这些过程都可以使用Maven命令来完成。

每个maven命令都有相对于的插件来完成。

1.1.1 clean

mvn clean:清理(删除)编译的文件
使用插件:maven-clean-plugin:2.5:clean

1.1.2 compile

mvn compile:编译主目录的文件
使用插件:
maven-resources-plugin:2.6:resources
maven-compiler-plugin:3.1:compile

1.1.3 test

mvn test: 编译并运行test目录的代码
使用插件:
maven-resources-plugin:2.6:resources
maven-compiler-plugin:3.1:compile
maven-resources-plugin:2.6:testResources
maven-compiler-plugin:3.1:testCompile
maven-surefire-plugin:2.12.4:test

1.1.4 package

mvn package:打包项目,jar包或war包
使用插件:
maven-resources-plugin:2.6:resources
maven-compiler-plugin:3.1:compile
maven-resources-plugin:2.6:testResources
maven-compiler-plugin:3.1:testCompile
maven-surefire-plugin:2.12.4:test
maven-jar-plugin:2.4:jar

1.1.5 install

mvn install:安装到仓库
maven-resources-plugin:2.6:resources
maven-compiler-plugin:3.1:compile
maven-resources-plugin:2.6:testResources
maven-compiler-plugin:3.1:testCompile
maven-surefire-plugin:2.12.4:test
maven-jar-plugin:2.4:jar
maven-install-plugin:2.4:install

1.1.6 其他命令

mvn deploy:部署,部署到私服

mvn tomcat:run:运行

1.4 Maven构建生命周期
  1. Clean:项目构建前的清理操作
  2. Default(Build): 核心生命周期核心过程:编译,测试,运行,打包等等
  3. Site:项目站点文档创建。
1.5 Maven POM文件

POM( Project Object Model,项目对象模型 ) 是 Maven 工程的基本工作单元,是一个XML文件,包含了项目的基本信息,用于描述项目如何构建,声明项目依赖,等等。
执行任务或目标时,Maven 会在当前目录中查找 POM。它读取 POM,获取所需的配置信息,然后执行目标。
POM 中可以指定以下配置:
项目依赖
插件
执行目标
项目构建 profile
项目版本
项目开发者列表
相关邮件列表信息
基本的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
    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-SNAPSHOT</version>
  	
  	<!--打包形式 例如jar、war、ear、pom-->
  	<packaging>jar</packaging>
</project>

所有 POM 文件都需要 project 元素和三个必需元素:groupId,artifactId,version。这个必须元素叫做坐标(GAV)。

3.5 Maven引入外部依赖

pom.xml 的 dependencies 列表列出了我们的项目需要构建的所有外部依赖项。

<dependencies>
  		<!--坐标GAV-->
		<dependency>
		  <groupId>junit</groupId>
		  <artifactId>junit</artifactId>
		  <version>4.12</version>
		  <scope>test</scope>
		</dependency>
</dependencies>

Idea配置Maven

第一步 :安装插件

Idea自带maven插件,目前Idea不需要安装。

第二步:配置Maven

在Idea的启动初始界面,打开:Configure–>Settings–>Build,Execution,Deployment–>Maven
如下图:

在这里插入图片描述
在这里插入图片描述
在Importing中,选择自动导入依赖
在这里插入图片描述

第三步:Idea创建Maven工程

在这里插入图片描述
在这里插入图片描述

  • 项目信息:
    在这里插入图片描述
  • 项目位置,点击完成:
    在这里插入图片描述
    项目说明

在这里插入图片描述
在这里插入图片描述
pom.xml文件如下:

<?xml version="1.0" encoding="UTF-8"?>
<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>

    <groupId>com.qf.maven</groupId>
    <artifactId>hellomaven</artifactId>
    <version>1.0-SNAPSHOT</version>
</project>

添加依赖

上网搜索依赖进行添加: 推荐网站:http://mvnrepository.com/
示例:
<dependencies>
	<dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <version>5.1.41</version>
    </dependency>
</dependencies>
    添加到项目的pom文件内容说明(切换pom.xml到Dependencies目录下):
        type:类型
              取值说明:
                    jar:jar包
        Scope:声明jar包的存活时间
       		 取值说明:
              1、provided:编译和测试时需要,打包和运行不需要  例如servlet-api  jsp-api
              2、compile:编译、测试、运行、打包需要  druid  dbutils  fileupload
              3、runtime:测试、运行、打包需要   mysql驱动
              4、test:测试 例如junit
              5、system:编译和测试时需要,显示引用,Maven不会检索

创建java类及测试类
使用命令编译测试
注意:如果选择骨架创建的是web项目需要更改两个地方:
1 添加 java 和resources目录并更改为 source root、 resources root
2 修改web.xml文件版本 3.1
依赖范围:

A 依赖B,需要再A的pom.xml文件中添加B的坐标,添加坐标时需要指定依赖范围,依赖范围包括:

(1)compile:编译范围, 编译范围的依赖会在编译,测试,运行,打包(war)都会使用依赖jar包

(2)provided:提供依赖,provided依赖在编译,测试时需要,运行,打包都不会包含。

(3)runtime:运行依赖,runtime依赖在运行、测试、打包的需要,但在编译的时候不需要,比如:jdbc的驱动包

(4)test:测试依赖,在编译和运行时不需要,他们只有在测试编译和测试运行时使用, 比如junit,也不会被打包

(5)system:系统依赖,system依赖与provided类似,但是你必须显示的提供一个对于本地系统中jar文件的路径,需要指定systemPath磁盘路径,system依赖不推荐使用。

依赖范围编译测试运行打包(war)例子
compileyesyesyesyesbeanutils、fileupload
testnoyesnonojunit
providedyesyesnonoserlvet-api、jsp-api
runtimenoyesyesyesjdbc驱动
systemyesyesnono本地jar包。maven仓库之外的jar包
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值