文档章节

maven学习总结

S
 Sleeplesslion
发布于 2017/06/15 23:32
字数 902
阅读 4
收藏 0

1.认识maven

  • maven是一个项目构建工具,也是一个项目管理工具
  • maven包含一个项目对象模型(Project Object Model),一组标准集合,一个项目生命周期(Project Lifecycle),一个依赖管理系统(Dependency Management System),和用来定义在生命周期阶段中插件目标的逻辑。
  • 约定大于配置(Convention Over Configuration)
  • maven插件:一个插件有多个目标,每一个目标固定执行多个步骤

2.使用maven

  • 下载maven,配置环境变量,执行 mvn -version检查配置是否正确
  • 第一个插件的使用:maven help,它有四个目标:active-profiles,effective-pom,effective-settings,describe,执行插件目标:mvn help:active-profiles,获取一个插件的描述:mvn help:describe -Dplugin=compiler -Dmojo=compile -Dnull
  • 创建一个简单maven项目:mvn archetype:generate -DgroupId=your group -DartifactId=your artifactId -DpackageName=your package name
  • 创建一个简单的maven web项目:mvn archetype:generate -DgroupId=your group -DartifactId=your artifactId -DpackageName=your package name -DarchetypeArtifactId=maven-archetype-webapp
  • 进入项目根目录,构建项目:mvn install
  • 运行构建的项目:java -cp target/simple-1.0-SNAPSHOT.jar com.ibm.java.App

3.理解一些名词

  • 插件:一个单个或者多个目标的集合
  • 目标:目标是maven中的工作单元,每个插件都自己的多个目标
  • 生命周期:mvn package中的package就是一个生命周期中的一个阶段。一个阶段是呗maven称为“构建生命周期”中的一个步骤。生命周期是包含在一个项目构建中的一系列有序的阶段的组合。默认maven生命周期:process-resources > compile > process-classes > process-test-resources > test-compile > test > prepare-package > package

4.仓库

  • 打开http://repo1.maven.org/maven2/,这是一个中央仓库,里面的文件都是按照/<groupId>/<artifactId>/<version>/<artifactId>-<version>.<packaging>的格式放置的。

5.创建web项目

  • 创建了一个简单的web项目之后,一般情况下,需要把项目打成war包放入Jetty或者Tomcat容器中,启动容器来进行测试。现在,可以在pom.xml文件中配置Jetty插件,直接在maven中运行web项目。
  • <plugin>
      <groupId>org.mortbay.jetty</groupId>
      <artifactId>maven-jetty-plugin</artifactId>
    </plugin>

    配置好之后,调用:mvn jetty:run

  • 启动jetty成功,访问localhost:8080会直接显示maven创建的默认index.jsp Hello World!

  • 这个时候,虽然你能访问index.jsp,但是如果创建一个简单的servlet因为编译时期需要依赖servlet包,所以需要加入servlet 依赖
<dependency>
   <groupId>javax.servlet</groupId>
   <artifactId>servlet-api</artifactId>
   <version>2.5</version>
   <scope>provided</scope>
</dependency>
  • 创建简单的servlet,在web.xml中配置,执行:mvn clean install,再次启动jetty,访问localhost:8080/demo

6.创建多项目,使用父pom

7.属性引用

  • 使用${env.property},引用环境变量中的值
  • 使用${settings.property},引用settings文件中的值
  • 使用${project.property},引用pom文件中的值
  • 使用${property},引用自定义的变量

8.scope依赖范围

  • compile,默认值,用于编译,用于打包
  • provided,用于编译,不打包,例如servlet api
  • runtime,用于运行和测试时运行,编译期不需要,例如JDBC驱动
  • test,用于测试的编译和运行
  • system,提供本地jar包的依赖,不推荐使用

9.依赖冲突的解决

  • 排除一个传递性依赖
    <dependency>
      <groupId>org.sonatype.mavenbook</groupId>
      <artifactId>project-a</artifactId>
      <version>1.0</version>
      <exclusions>
        <exclusion>
          <groupId>org.sonatype.mavenbook</groupId>
          <artifactId>project-b</artifactId>
        </exclusion>
      </exclusions>
    </dependency>

     

  • 多项目结构时,使用父POM统一管理依赖版本,使用dependencyManagement标签控制

10.构建生命周期

  • maven有三大标准生命周期
  • 清理生命周期 clean   pre-clean > clearn > post-clean
  • default生命周期
  • 站点生命周期 site  pre-site > site > post-site > site-deploy

写的太简单,以后再补充生产中出现的问题

© 著作权归作者所有

共有 人打赏支持
S
粉丝 0
博文 2
码字总数 902
作品 0
maven入门 (二)_私服安装与上传下载

本篇文章主要介绍maven的私服安装和 jar包的上传与下载。毕竟大家还是在公司需要上传jar包到自己公司私服的。 1.安装私服 下载链接: https://pan.baidu.com/s/17dbQny3d1VgKBA529BTwJA 密码:...

养码青年
05/19
0
0
一个月工作总结

从2015年6.27毕业到9.3正式来百世入职。 期间在一个小公司待过一段时间。 一,技术方面 1.Maven 学会了使用Maven 知道了Maven文件的基础结构。 如果使用Maven管理项目jar包依赖和版本管理 。...

-鹏
2015/10/19
118
2
springboot 集成elasticsearch遇到的坑

最近开始学习elasticsearch,所以就想着在springboot里面集成一下elasticsearch,结果遇到了不少麻烦,下面总结一下,但愿大家和自己以后都少走弯路 首先声明下,本人开始学习elasticsearch...

Meet相识_bfa5
2017/11/07
0
0
使用Leopard Redis操作Redis

使用Leopard Redis操作Redis 学习如何在旧项目中使用Leopard Redis。 本指南将引导您完成使用Leopard Redis操作Redis。 How to complete this guide 你可以从头开始并完成每一个步骤,或者您可...

Leopard后端框架
2015/02/12
0
2
求大神驻足,有关java路径的疑问

相信大神们在学习java的路上,遇到过不少有关路径的难题吧。我确实遇到不少,好像不同的环境的相对路径是不同。比如maven项目和普通的eclipse创建的项目。你们有总结过并解开这些难题吗。求链...

coco_J
2015/03/13
56
1

没有更多内容

加载失败,请刷新页面

加载更多

Java中的移位运算符

国庆给自己放了个小长期二十几天,回来继续更新专栏 上一篇文章我们说了Java里的二进制,知道了计算机是以0和1来处理数据的,在阅读源码的过程中,经常会看到这些符号<< ,>>,>>>,这些符号...

SuShine
21分钟前
2
0
linux版QQ

下载地址在这 http://yun.tzmm.com.cn/index.php/s/XRbfi6aOIjv5gwj Appimage包不用做什么别的处理,安装啥的都不需要。。找到文件所在目录,终端中修改一下文件的权限 chmod 777 QQ-2017112...

悲催的古灵武士
27分钟前
1
0
咕泡-MyBatis 实用篇作业

1. Mapper在spring管理下其实是单例,为什么可以是一个单例? 首先,mapper 内部不包含 成员字段,无状态单例是安全的 另外,一直存在不用每次调用都new 一个新实例 2. MyBatis在Spring集成下...

职业搬砖20年
30分钟前
2
0
MQTT协议的初浅认识之连接建立

MQTT百科 MQTT(消息队列遥测传输)是ISO 标准(ISO/IEC PRF 20922)下基于发布/订阅范式的消息协议。它工作在 TCP/IP协议族上,是为硬件性能低下的远程设备以及网络状况糟糕的情况下而设计的发布...

亚林瓜子
47分钟前
1
0
OpenStack部署都有哪些方式

对于每一个刚接触到OpenStack的新人而言,安装无疑是最困难的,同时这也客观上提高了大家学习OpenStack云计算的技术门槛。想一想,自己3年前网上偶然接触到OpenStack时,一头茫然,手动搭建一...

tututu_jiang
47分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部