MVN 核心总结1

来源:互联网 发布:2016年淘宝9月大促时间 编辑:程序博客网 时间:2024/05/29 04:46
核心总结如下:
运行MVN的时候一定要保证机器能够访问mvn的官网地址,因为他很可能会自动下载更新。

(1)MAVEN的核心思想是约定胜于配置。安装约定的规则,你就会功半事倍。
(2)事实上,MAVEN的功能只会读取 xml文件。他的功能主要是由插件完成的。你从官网上下载的maven安装包只是一个最小集合。而插件是从仓库获得。当你第一次运行mvn install的时候,他会从中央仓库下载大量的核心插件,有的插件负责编译,有的负责测试,有的负责发布版本等。
(3)项目对象模型的特性:
               项目依赖,声明自己依赖项目位置
               MVN的构件仓库的位置,
               插件也被定义在项目对象模型中
               Nexus可以搜索项目中的信息
              所有的构件信息除了约定之外,都必须声明出来。声明构建。
             重用,新构建的项目的jar文件放到仓库中就可以被其他项目重用
(4)MVN 有自己的约定行为,如果想自定义MVN的行为,可以尝试修改~/.m2目录下的archetype-catalog.xml文件。或者修改${MAVEN_HOME}/config/setting。
 ( 5 ) 如果安装你依赖的类库 运行这个命令 mvn dependency:sources就可以了。
 ( 6)  MVN 帮助  mvn  help:describe Dplugin=pluginName 例如,mvn help:describe -Dplugin=help -Dmojo=describe
 (7)  如果要查看隐式的(默认)pom.xml 设置,可以用mvn help:effective-pom命令。
 (8)  mvn中的目标要映射到一个插件上去。通常是这样表达 plugin_id:targetname。
 (9)   mvn 中定义的生命周期有 验证(validation), 编译 (testing ),  测试 (testing ) ,  发布 (deployment/package)
(10) 当mvn执行生命周期中的target的时候,默认会把生命周期对应之前的目标全部执行一遍。
   例如 mvn package 就等于下面的目标组合。
   mvn resources:resources \
       compiler:compile \
       resources:testResources \
       compiler:testCompile \
       surefire:test \
       jar:jar

(11)  mvn中项目的坐标通常用下面的方式来表示:groupId:artifactId:packaging:version。坐标可以唯一标识一个项目。引用其他项目需要用坐标来表示。
          如果version中有snapshot,snapshot表示一个开发中的版本。
(12)当为项目创建JAR文件的时候,它的依赖不会被捆绑在生成的构件中,他们只是用来编译。当用Maven来创建WAR或者EAR,你可以配置Maven让它在生成的构件中捆绑依赖,你也可以配置Maven,使用provided范围,让它排除WAR文件中特定的依赖。provided围告诉Maven一个依赖在编译的时候需要,但是它不应该被捆绑在构建的输出中。当你开发web应用的时候provided范围变得十分有用,你需要通过Servlet API来编译你的代
码,但是你不希望Servlet API的JAR文件包含在你web应用的WEB-INF/lib目录中


0 0