Maven入门教程笔记

简介

    1.是一个项目构建工具
    2.中央仓库啥jar包都有因为版权问题没有oracel的
    3.许晓斌(Juven Xu),国内社区公认的Maven技术专家、Maven中文用户组创始人、Maven技术的先驱和积极推动者,著有《Maven实战》一书

好处

    1.比原有的项目空间更小(jar所占的空间)

如何实现

    1.依赖管理
    2.maven构建
        code
        编译
        测试
        打包
        部署

安装、配置本地仓库

    1.安装前提
        需要java JDK
    2.配置本地仓库(这个网上很多教程)

maven标准目录

    src
        源码文件夹

    pom.xml
        配置文件
    target
        存好编译后的源码的

![这里写图片描述](https://img-blog.csdn.net/20170819214051779?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbWVuZ3hpYW5neGluZ2Rvbmc=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)

命令

    1.mvn help:system
        初始化maven仓库
    2.mvn tomcat:run
        发布到tomcat上
    3.mvn -version
        查询当前的mvn版本的信息
    4.mvn  clean
        清理项目
            会把之前生成的class文件删除掉
            target目录删除掉了
    5.mvn -compile
        编译项目
            将target目录重新生成
    6.mvn -test
        将test项目文件下的单元测试全部执行
            就是以前的标准单元测试命名
    7.mvn package
        将项目打包
            生成了war格式的
    8.mvn install
        安装
            本地项目公用一个jar

整合web项目案例

    构建索引
        show view 
             maven
                构建索引
                    rebuild index
    添加依赖之后先项目右键update

创建项目
Maven入门教程笔记_第1张图片

创建好的项目会出现以下错误
1.web.xml缺失
2.jdk编译环境为1.5

运行maven项目

            项目-run as  
                maven  bulid..
                    手动输入命令
                maven  bulid
                    历史记录
    调试项目
        debug as
            要关联源码

POM 4中

1.dependency>中还引入了scope
  1. compile,缺省值,适用于所有阶段,会随着项目一起发布。
  2. provided,类似compile,期望JDK、容器或使用者会提供这个依赖。如servlet.jar。
  3. runtime,只在运行时使用,如JDBC驱动,适用运行和测试阶段
  4. test,只在测试时使用,用于编译和运行测试代码。不会随项目发布。
  5. system,类似provided,需要显式提供包含依赖的jar,Maven不会在Repository中查找它。
如果使用tomcat也有的jar
                scope要设置为provideed  

maven的生命周期

三套生命周期

1.clean 清理周期
pre-clean
clean
post-clean

2.default默认周期
validate
initialize
generate-sources
process-sources 处理项目主资源文件 src/main/resources
generate-resources
porcess-resources
compile 编译项目主源码
process-classes
generate-test-sources
process-test-sources
generate-test-resources
process-test-resources 处理荐测试资源文件 src/test/resources
test-compile 编译项目测试代码
process-test-compile
test 使用单元测试框架运行测试,但测试代码不会被打包或部署
prepare-package
package
pre-integration-test
integration-test
post-integration-test
verify
install 将包安装到本地仓库
deploy 将包复制到远程仓库

site
pre-site
site
post-site
site-deploy
将工具类,作为一个工程打印成jar包

仓库

1.远程仓库

1.远程仓库配置
Pom文件repository标签(属性:id,name,url,releases(updatePolicy,checksumPolicy),snapshots(updatePolicy,checksumPolicy))
2.远程仓库认证
setting.xml中servers标签(id,username,password)
3.部署至远程仓库
pom文件distributionManagement标签(repository(id,name,url),snapshotRepository);

2.中央仓库

3.私服

            Nexus
                group
                hosted
                proxy
                virtual

其它公共库

镜像

本地仓库

插件

    插件目标
    Maven的生命周期是抽象的,具体任务由插件来完成,一般插件可以完成多个任务(如maven-site-plugin包含site和deploy功能).
    一个功能对应一个目标 如:site:deploy 冒号前面是插件简称,后边是目标。

插件绑定
项目编译此任务对应default生命周期的compile阶段,而maven-compiler-plugin插件的compile目标完成此任务。因此将它们绑定就可实现项目编译

内置绑定
为了减少配置maven 在核心为主要的生命周期绑定了很多插件目标。

自定义绑定
plugin标签中execution>id>phase>goal>execution>

传递依赖冲突解决

依赖范围
compile
test
provided
runtime
system

依赖调解
1.路径最者短被引用
2.第一声明者优先引用(POM中的声明顺序)
可选依赖
排除依赖
归类依赖

遇到的错误

    先检查关键字是否出错
    其次吧自己的setting配置一个好的的maven链接
    安装部分插件

你可能感兴趣的:(【maven】,maven)