Maven(1)的配置和基础知识!
Maven简介: 基于项目对象模型(POM),项目的管理工具!
1.maven下载maven.apache.org
2.配置环境变量 新建M2-HOME 变量值maven的路径;编辑PATH ;%M2-HOME%\bin 配置验证:mvn -v
3.maven目录结构
自动构建目录骨架的两种方式:
3.1. mvn archetype:generate 按照提示进行选择
3.2.mvn archetype:generate -DgroupId=组织名,公司网址的反写+项目名 com.daoan.maven01
-DartifactId=项目名-模块名 maven01-service
-Dversion=版本号 1.0.0-SHAPSHOT
-Dpackage=代码所存在的包名 com.daoan.maven01.service
规范:在创建maven项目时,package包名应该与groupId和artifactId的名字 要一致
-main
-java
-package
-test
-java
-package
4.maven常用指令
编译: mvn compile
测试: mvn test
配置验证:mvn -v
删除target: mvn clean
安装jar包到本地仓库中:mvn install
对maven来说引入固件包的流程,通过mvn compile编译源代码,编译过程中程序用到了其他的工具包会到pom.xml中查找是否引入了依赖包坐标
引入之后会到本地仓库中查找,如果有,maven会将项目加入到class path中,如果没有会到网上下载,并将其放入本地仓库供我们使用
<?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/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.daoan.maven02</groupId> <artifactId>maven02-model02</artifactId> <version>0.0.1SNAPSHOT</version> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.11</version> </dependency> <dependency> <groupId>com.daoan.maven01</groupId> <artifactId>maven01-model</artifactId> <version>0.0.1SNAPSHOT</version> </dependency> </dependencies> </project>
4.pom.xml的配置 (pom.xml和src目录平行)
在struts2中找到pom.xml (D:\opensource\struts-2.3.34\lib\struts2-core-2.3.34.jar)
pom配置:
<?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/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.daoan.maven01</groupId> <artifactId>maven01-model</artifactId> <version>0.0.1SNAPSHOT</version> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.11</version> </dependency> </dependencies> </project>
5.坐标:
groupId= 组织名,公司网址的反写+项目名 com.daoan.maven01
artifactId= 项目名-模块名 maven01-service
version= 版本号 1.0.0-SHAPSHOT
package= 代码所存在的包名 com.daoan.maven01.service
规范:在创建maven项目时,package包名应该与groupId和artifactId的名字 要一致
6.仓库:
含义:存储Maven共享构建的位置
本地仓库
远程仓库 (私服、中央仓库<http://search.maven.org,很多的开源框架>)
镜像仓库(仓库X能提供Y的所有功能,setting.xml配置)
修改镜像仓库的位置,访问国内的镜像仓库 D:\Maven\apache-maven-3.5.2\conf\settings.xml 146行
<mirror> <id>maven.net.cn</id> <mirrorOf>central</mirrorOf> <name>central mirror in china</name> <url>http://maven.net.cn/content/groups/public</url> </mirror>
更改本地仓储的位置( 不建议放在C盘,但默认是C盘)
在setting.xml文件第51行修改路径: <localRepository>D:/Maven/repo</localRepository>
这样的话,在下一次编译的时候就会更改路径,将setting.xml文件复制一份到repo中,下次更新maven就不必修改setting
7.生命周期和插件
三套生命周期:
第一套 clean:清理项目 分为(pre-clean、clean、post-clean)
第二套 default:构建项目(重要) (compile 、test 、package、install)
第三套 site:简历项目站点 (和clean差不多)
插件:
插件source的使用,可以将项目源码进行打包!
当运行package命令时,项目自动进行编译、测试、打包,并且生成source.jar
对声明周期的阶段而言,执行某个阶段前面的阶段也会依次执行!
打开http://maven.apache.org --> Maven Plugins -->source -->jar-no-fork放入<goal标签中>
打开pom.xml对插件进行配置
<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-source-plugin</artifactId> <version>2.4</version> <executions> <execution> <phase>package</phase> <goals> <goal>jar-no-fork</goal> </goals> </execution> </executions> </plugin> </plugins> </build>