项目管理工具---maven

来源:互联网 发布:银行证券软件下载 编辑:程序博客网 时间:2024/05/17 17:39

maven笔记

开发项目,需要下载各种各样的jar包,有用的,没用的,冲突的,项目还没有开始开发就臃肿的可以不要不要的.
项目管理工具,Maven,Ant,gradle…

bin:包含了mvn的运行脚本
boot:包含了一个类加载器的框架

配置环境变量

vim /etc/profile    //配置环境变量#maven setexport M2_HOME=/home/juedaiyuer/apache-maven-3.3.9export M2=$M2_HOME/binexport PATH=$M2:$PATH保存source profile //不用重启mvn -versionApache Maven 3.3.9 (bb52d8502b132ec0a5a3f4c09453c07478323dc5; 2015-11-11T00:41:47+08:00)Maven home: /home/juedaiyuer/apache-maven-3.3.9Java version: 1.8.0_65, vendor: Oracle CorporationJava home: /usr/jdk1.8.0_65/jreDefault locale: zh_CN, platform encoding: UTF-8OS name: "linux", version: "3.19.0-56-generic", arch: "i386", family: "unix"

maven目录结构

src    -main        -java            主代码    -test        -java            测试代码    -resources(资源文件)

第一次maven测试(without IDE)

//maven测试中用到mkdir -p src/main/java test/java/main/java/maven 目录 package maven.example01;public class HelloWorld{    public String sayHello()    {        return "Hello World!";    }}/test/java/maven    package maven.example01;import org.junit.*;import org.Assert.*;public class  HelloWorldTest{    @Test    public void testHello()    {        Assert.assertEquals("Hello World!",new HelloWorld().sayHello());    }}

配置pom.xml

在struts文件的lib,struts2-core文件(jar),META-INF/maven/org.apache.struts/struts2-core/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/maven-v4_0_0.xsd">    <modelVersion>4.0.0</modelVersion>    <groupId>maven</groupId>    <artifactId>maven-example01</artifactId>    <version>0.0.1SNAPSHOT</version>    <dependencies>        <dependency>            <groupId>junit</groupId>            <artifactId>junit</artifactId>            <version>4.10</version>        </dependency>    </dependencies></project>

调试

mvn -vmvn compile 项目编译mvn test 运行mvn package 打包mvn clean 删除targetmvn install 安装jar包到本地仓库

自动建立目录骨架

archetype插件用于创建符合maven规定的目录骨架

mvn archetype:generate 按照提示进行选择mvn archetype:generate -DgroupId yourgroup -DartifactId yourartifactId -Dversion yourversion -Dpackage yourpackge

坐标与仓库

pom.xml配置文档

本地仓库和远程仓库

超级pom:maven文件 lib/maven-model-builder-3.3.9.jar//org/apache/maven/model/pom.xml

https://repo.maven.apache.org/maven2 全球仓库的地址

镜像仓库

maven文件夹/conf/settings.xml

mirror标签

配置完后访问镜像仓库,原仓库不再访问

更改仓库位置

默认仓库下载地址: /home/juedaiyuer/.m2/repository

也可以设置仓库,放置在你的项目文件中,配置文件settings.xml

localRepository标签 修改仓库位置

坐标

<modelVersion> 指定了当前的pom的版本//坐标三标签<groupId> 反写的公司网址+项目名<artifactId> 项目名+模块名<version> 版本号 第一个数字:大版本号 第二个数字:分支版本号 第三个数字:小版本号

maven坐标格式:groupId:artifactId:packaging:version
包名应该与坐标相吻合

snapshot 快照
alpha 内部测试
beta 公测
Release 稳定
GA 正式发布

eclipse下maven的使用

查看IDE是否安装maven
window-preferences中查看是否有maven选项,如果有不用安装;

安装maven到IDE

将maven插件复制到eclipse/dropins

配置

maven的一些核心插件需要JDK
eclipse运行在JRE上,需要添加JDK

修改eclipse.ini文件

-vm
jdk文件路径(yourjdk/bin)/javaw.exe

修改eclipse默认的JRE

配置JRE,与JDK同用;

JRE

add只需要选择JDK所在目录即可

maven配置修改为本机的maven

eclipse修改本机的maven

生命周期和插件

完整的项目构建过程

清理-编译-测试-打包-集成测试-验证-部署

maven生命周期

clean 清理项目
default 构建项目
site 生成项目站点

pom.xml

坐标信息

标签

name 项目描述名url 项目的地址description 项目的描述developers 项目开发人员列表licenses 许可证信息organization 组织信息dependencies 依赖列表    dependency 依赖项        groupId        artifactId        version        type        scope        optional 设置依赖是否可选        exclusions 排除依赖传递列表            exclusiondependencyManagement 依赖的管理(不会引入实际的以来当中,一般定义在父模块中,供子模块继承)build 构建行为提供支持    plugins 插件列表        plugin 插件            groupId            artifactId            versionparent modules 聚合多个maven项目    module

maven的依赖管理

<dependencies><dependency>  <groupId>junit</groupId>  <artifactId>junit</artifactId>  <version>3.8.1</version>  <scope>test</scope></dependency></dependencies>

scope标签

compile 默认的范围,编译测试运行都有效provided 在编译和测试时有效runtime 在测试和运行时有效test 测试时有效system 与本机系统相关联,可移植性差import 导入的范围,它只使用在dependencyManagement中,表示从其它的pom中导入dependecy的配置

依赖的传递

依赖冲突

  • 短路优先(优先解析路径短的)
  • 先声明先优先(如果路径长度相同)

    A->B->C->X(jar)
    A->D->X(jar)

    优先解析路径短的

聚合和继承

使用maven构建web项目

new-maven-webapp

添加servlet依赖


source

  1. imooc 项目管理利器–maven
  2. mvnrepository
0 0