Maven最全教程,看了必懂
Posted 程序员侃世界
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Maven最全教程,看了必懂相关的知识,希望对你有一定的参考价值。
一、为什么使用Maven这样的构建工具【why】
二、maven是什么【what】
-
清理clean:将以前编译得到的旧文件class字节码文件删除 -
编译compile:将java源程序编译成class字节码文件 -
测试test:自动测试,自动调用junit程序 -
报告report:测试程序执行的结果 -
打包package:动态Web工程打War包,java工程打jar包 -
安装install:Maven特定的概念-----将打包得到的文件复制到“仓库”中的指定位置 -
部署deploy:将动态Web工程生成的war包复制到Servlet容器下,使其可以运行
三、安装maven
-
在环境变量增加M2_HOME,路径是maven解压后的根目录 -
在环境变量里的path中增加maven/bin的目录
四、第一个maven
根目录:工程名
|---src:源码
|---|---main:存放主程序
|---|---|---java:java源码文件
|---|---|---resource:存放框架的配置文件
|---|---test:存放测试程序
|---pop.xml:maven的核心配置文件
文件内容如下
package com.hzg.maven;
public class Hello {
public String sayHello(String name){
return "Hello "+name+"!";
}
}
<?xml version="1.0" ?>
<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.hzg.maven</groupId>
<artifactId>Hello</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>Hello</name>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.0</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>
-
mvn clean:清理 -
mvn compile:编译主程序 -
mvn test-compile:编译测试程序 -
mvn test:执行测试 -
mvn package:打包 -
mvn install:安装
五、仓库和坐标
-
私服:搭建在局域网中,一般公司都会有私服,私服一般使用nexus来搭建。具体搭建过程可以查询其他资料 -
中央仓库:架设在Internet上,像刚才的springframework就是在中央仓库上
六、依赖
-
对于本地仓库中没有的会去中央仓库去查找maven坐标来获取jar包,获取到jar之后会下载到本地仓库 -
对于中央仓库也找不到依赖的jar包的时候,就会编译失败了
七、生命周期
-
pre-clean 执行一些需要在clean之前完成的工作 -
clean 移除所有上一次构建生成的文件 -
post-clean 执行一些需要在clean之后立刻完成的工作
-
validate -
generate-sources -
process-sources -
generate-resources -
process-resources 复制并处理资源文件,至目标目录,准备打包 -
compile 编译项目的源代码 -
process-classes -
generate-test-sources -
process-test-sources -
generate-test-resources -
process-test-resources 复制并处理资源文件,至目标测试目录 -
test-compile 编译测试源代码 -
process-test-classes -
test 使用合适的单元测试框架运行测试。这些测试代码不会被打包或部署 -
prepare-package -
package 接受编译好的代码,打包成可发布的格式,如 JAR -
pre-integration-test -
integration-test -
post-integration-test -
verify -
install 将包安装至本地仓库,以让其它项目依赖。 -
deploy 将最终的包复制到远程的仓库,以让其它开发人员与项目共享
-
pre-site 执行一些需要在生成站点文档之前完成的工作 -
site 生成项目的站点文档 -
post-site 执行一些需要在生成站点文档之后完成的工作,并且为部署做准备 -
site-deploy 将生成的站点文档部署到特定的服务器上
八、Eclipse中使用maven
<localRepository>C:\Program Files\Java\repository</localRepository>
九、maven工程的依赖高级特性
-
WebMavenDemo的pom.xml文件想能编译通过,JavaMavenService1必须mvn install -
JavaMavenService的pom.xml文件想能编译通过,JavaMavenService2必须mvn install
注意:非compile范围的依赖是不能传递的。
十、build配置
<build>
<!-- 项目的名字 -->
<finalName>WebMavenDemo</finalName>
<!-- 描述项目中资源的位置 -->
<resources>
<!-- 自定义资源1 -->
<resource>
<!-- 资源目录 -->
<directory>src/main/java</directory>
<!-- 包括哪些文件参与打包 -->
<includes>
<include>**/*.xml</include>
</includes>
<!-- 排除哪些文件不参与打包 -->
<excludes>
<exclude>**/*.txt</exclude>
<exclude>**/*.doc</exclude>
</excludes>
</resource>
</resources>
<!-- 设置构建时候的插件 -->
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.1</version>
<configuration>
<!-- 源代码编译版本 -->
<source>1.8</source>
<!-- 目标平台编译版本 -->
<target>1.8</target>
</configuration>
</plugin>
<!-- 资源插件(资源的插件) -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>2.1</version>
<executions>
<execution>
<phase>compile</phase>
</execution>
</executions>
<configuration>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
<!-- war插件(将项目打成war包) -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.1</version>
<configuration>
<!-- war包名字 -->
<warName>WebMavenDemo1</warName>
</configuration>
</plugin>
</plugins>
</build>
http://mvnrepository.com/
近期精彩内容推荐:
在看点这里好文分享给更多人↓↓
以上是关于Maven最全教程,看了必懂的主要内容,如果未能解决你的问题,请参考以下文章