maven基础总结

个人对maven的基础只是总结
定义:maven是当前最受欢迎的java项目管理构建自动化综合工具
功能:
1、依赖的管理:仅仅通过jar包的几个属性,就能确定唯一的jar包,在指定的文件pom.xml中,只要写入这些依赖属性,就会自动下载并管理jar包。
2、项目的构建:内置很多的插件与生命周期,支持多种任务,比如校验,编译,测试、打包、部署、发布…
3、项目的知识管:管理项目相关的其他内容,比如开发者信息,版本等。
一些仓库的路径:
1、http://www.sonatype.org/nexus/ 私服nexus工具使用
2、http://mvnrepository.com/ (推荐)
3、http://repo1.maven.org/maven2
4、http://maven.aliyun.com/nexus/content/groups/public/ 阿里云 (强力推荐)
5、http://repo2.maven.org/maven2/ 私服nexus工具使用
6、http://uk.maven.org/maven2/
7、http://repository.jboss.org/nexus/content/groups/public
8、http://maven.oschina.net/content/groups/public/
9、http://mirrors.ibiblio.org/maven2/
10、http://maven.antelink.com/content/repositories/central/
11、http://nexus.openkoala.org/nexus/content/groups/Koala-release/
12、http://maven.tmatesoft.com/content/groups/public/
Maven的用途通常有:构建项目,文档生成,报告,依赖管理,SCMS,发布项目,分发项目,邮件管理
主要思想:约定大于配置
约定项目的目录结构:
– 项目目录
–src 项目中的所有资源
–main 存放开发代码和资源
–java 项目的java源代码
–resources 项目的资源文件,源代码之外的其他文件
–test 存放测试代码和资源
–java 项目的测试类和测试代码
–resources 项目的测试资源
–target 打包输出目录
–classes 编译输出目录
–test-classes 测试代码编译输出目录
–generated-sources 自动生成的资源输出目录
–generated-test-sources 测试资源输出目录
–pom.xml 文档对象模型的描述文件
maven粗略的生命周期:
编译、测试、打包、集成测试、验证、部署

maven的构建生命周期:
验证 validate 验证项目 验证项目是否正确且所有必须信息是可用的
编译 compile 执行编译 源代码编译在此阶段完成
测试 Test 测试 使用适当的单元测试框架(例如JUnit)运行测试。
包装 package 打包 创建JAR/WAR包如在 pom.xml 中定义提及的包
检查 verify 检查 对集成测试的结果进行检查,以保证质量达标
安装 install 安装 安装打包的项目到本地仓库,以供其他项目使用
部署 deploy 部署 拷贝最终的工程包到远程仓库中,以共享给其他开发人员和工程

maven的标准生命周期
clean 项目清理
default或build 项目部署
site 项目站点文档构建
maven仓库:
执行步骤:本地仓库–>私服–>中央仓库–>远程仓库
【本地仓库】
第一次执行maven命令时被创建,maven运行时需要的构件都从本地仓库获取,本地仓库不存在时首先去远程仓库下载到本地仓库,然后再使用。
默认目录%USER_HOME%.m2/repostitory需要修改的话,更改 %M2_HOME%\conf 目录中的 Maven 的 settings.xml 文件中定义另一个路径。
【远程仓库】
开发者自己搭建的仓库,可以放自己的私有jar包,而不让别人使用,公司内通常做一个自己的远程仓库来加快jar包的下载速度,类似的阿里云仓库就是国内的加速仓库。

<repositories>
      <repository>
         <id>companyname.lib1</id>
         <url>http://download.companyname.org/maven2/lib1</url>
      </repository>
      <repository>
         <id>companyname.lib2</id>
         <url>http://download.companyname.org/maven2/lib2</url>
      </repository>
</repositories>

【中央仓库】
Maven社区提供的仓库,包含所有的依赖库
【私服】
私服也属于远程仓库的一种,只是这个远程仓库的地址是本地服务器而已
配置在局域网环境中,为局域网中所有开发人员提供jar包的统一管理
仓库分类:
host仓库:(内部项目的发布仓库)
Snapshots 发布内部snapshots版本的仓库
Releases 发布内部release版本的仓库
3rd party 发布第3方jar包的仓库,如oracle数据库驱动,open-189.jar
proxy仓库:(从远程中心仓库查找jar的仓库)
Apache Snapshots 查找Apache项目的快照版本的仓库
Central 中心仓库http://repo1.maven.org/maven2/
Codehaus Snapshots 查找Codehaus 的快照版本的仓库
group仓库:(把仓库按组划分,以组来进行管理)
virtual仓库

  <!-- POM 配置私服地址 -->
  <repositories>
  <repository>
      <id>nexus</id>
      <url>http://localhost:8081/nexus/content/groups/public/</url>
  </repositories>
  <pluginRepositories>
  <pluginRepository>
      <id>nexus</id>
      <url>http://localhost:8081/nexus/content/groups/public/</url>
    </pluginRepository>
  </pluginRepositories> 

由于所有的Maven项目都会用settings.xml中的配置进行解析,如果将Repository配置到这个文件中,那么对所有的Maven项目都将生效。
此时,Maven项目中的POM文件就不需要再配置私服地址了!

  <!-- settings.xml 配置私服地址 --> 
  <profiles>    
     <profile>    
      <id>profile-nexus</id>    
      <repositories>    
        <repository>    
          <id>nexus</id>    
          <url>http://localhost:8081/nexus/content/groups/public/</url>    
          <snapshots><enabled>true</enabled></snapshots>    
          <releases><enabled>true</enabled></releases>    
        </repository>    
      </repositories>    
      <pluginRepositories>    
        <pluginRepository>    
          <id>nexus</id>    
          <url>http://localhost:8081/nexus/content/groups/public/</url>    
          <snapshots><enabled>true</enabled></snapshots>    
          <releases><enabled>true</enabled></releases>    
        </pluginRepository>    
      </pluginRepositories>    
    </profile>    
  </profiles>   

Maven插件
构建插件:在生成过程中执行,并在 pom.xml 中的 元素进行配置
报告插件:在网站生成期间执行,在 pom.xml 中的 元素进行配置
【maven的一些基础命令】
-D 指定参数,如 -Dmaven.test.skip=true 跳过单元测试;
-P 指定 Profile 配置,可以用于区分环境;
-e 显示maven运行出错的信息;
-o 离线执行命令,即不去远程仓库更新包;
-X 显示maven允许的debug信息;
-U 强制去远程更新snapshot的插件或依赖,默认每天只更新一次。

常用maven命令:
创建maven项目:mvn archetype:create
指定 group: -DgroupId=packageName
指定 artifact:-DartifactId=projectName
创建web项目:-DarchetypeArtifactId=maven-archetype-webapp
创建maven项目:mvn archetype:generate
验证项目是否正确:mvn validate
maven 打包:mvn package
只打jar包:mvn jar:jar
生成源码jar包:mvn source:jar
产生应用需要的任何额外的源代码:mvn generate-sources
编译源代码: mvn compile
编译测试代码:mvn test-compile
运行测试:mvn test
运行检查:mvn verify
清理maven项目:mvn clean
生成eclipse项目:mvn eclipse:eclipse
清理eclipse配置:mvn eclipse:clean
生成idea项目:mvn idea:idea
安装项目到本地仓库:mvn install
发布项目到远程仓库:mvn:deploy
在集成测试可以运行的环境中处理和发布包:mvn integration-test
显示maven依赖树:mvn dependency:tree
显示maven依赖列表:mvn dependency:list
下载依赖包的源码:mvn dependency:sources
安装本地jar到本地仓库:
mvn install:install-file -DgroupId=packageName -DartifactId=projectName -Dversion=version -Dpackaging=jar -Dfile=path

web项目相关命令:
启动tomcat:mvn tomcat:run
启动jetty:mvn jetty:run
运行打包部署:mvn tomcat:deploy
撤销部署:mvn tomcat:undeploy
启动web应用:mvn tomcat:start
停止web应用:mvn tomcat:stop
重新部署:mvn tomcat:redeploy
部署展开的war文件:mvn war:exploded tomcat:exploded

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值