文档章节

maven学习总结

S
 Sleeplesslion
发布于 2017/06/15 23:32
字数 902
阅读 4
收藏 0
点赞 0
评论 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
一个月工作总结

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

-鹏 ⋅ 2015/10/19 ⋅ 2

springboot 集成elasticsearch遇到的坑

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

Meet相识_bfa5 ⋅ 2017/11/07 ⋅ 0

求大神驻足,有关java路径的疑问

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

coco_J ⋅ 2015/03/13 ⋅ 1

使用Leopard Redis操作Redis

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

Leopard后端框架 ⋅ 2015/02/12 ⋅ 2

maven flexmojos 插件安装配置

收集的相关flexmojo学习资源: flexmojos Available versions http://mvnrepository.com/artifact/org.sonatype.flexmojos/flexmojos-maven-plugin 在flex项目中使用maven http://www.riadev......

BondZhan ⋅ 2013/07/11 ⋅ 0

Leopard Jdbc:简化Spring Jdbc使用

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

Leopard后端框架 ⋅ 2015/02/11 ⋅ 10

ExtJS4.2学习(20)动态数据表格之前几章总结篇1

本节采用技术:SpringMVC+Jetty+ExtJs4.2+Maven+MySQL5.1以上+SLF4J(前几节学习的大家不知道记住了没,现在来总结复习下,顺便加点新技术) 学习本节前的准备:Eclipse高版本,Jetty插件,M...

shyy8712872 ⋅ 2014/05/08 ⋅ 0

JMockit Mock测试入门详解

1. 概述: 小伙伴们,想必你看到此文,估计也是被公司强制要求的单元测试覆盖率苦恼了,我想说:“me,too”。 鄙人不才,之前写单元测试,都是环境和上下文依赖的,其实算不上是Junit测试,...

zhglance ⋅ 2017/11/16 ⋅ 0

Maven的安装和配置(一)

最近开始学习Maven,看了一些视频教学,以及许晓斌著的《Maven实战》,所以写下一些博客记录自己学习的知识以及自己的总结。 1. Maven简介 Maven是一个采用纯Java编写的开 源项目管理工具。M...

半夏alvin ⋅ 2013/11/20 ⋅ 0

spring security学习笔记1

最简单的SS模型,一个SS的Hello World~ 使用SS需要用到的JAR是:spring,spring security; 一,概要 1,使用maven构建项目,下载JAR包,如果不用maven也可以自己下载JAR包以及依赖包; 2,配...

安世博 ⋅ 2014/11/08 ⋅ 2

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Java Web如何操作Cookie的添加修改和删除

创建Cookie对象 Cookie cookie = new Cookie("id", "1"); 修改Cookie值 cookie.setValue("2"); 设置Cookie有效期和删除Cookie cookie.setMaxAge(24*60*60); // Cookie有效时间 co......

二营长意大利炮 ⋅ 今天 ⋅ 0

【每天一个JQuery特效】淡入淡出显示或隐藏窗口

我是JQuery新手爱好者,有时间就练练代码,防止手生,争取每天一个JQuery练习,在这个博客记录下学习的笔记。 本特效主要采用fadeIn()和fadeOut()方法显示淡入淡出的显示效果显示或隐藏元...

Rhymo-Wu ⋅ 今天 ⋅ 0

Spring JDBC使用方法

普通实现: 1、创建数据表customer。 可以使用任何数据库实现,在项目中要引入相应数据库驱动包并配置相应数据库连接。 2、创建Customer pojo。 Customer类的属性对应数据库的属性,除了为每...

霍淇滨 ⋅ 今天 ⋅ 0

Contos 7 安装Jenkins

Jenkins是一款能提高效率的软件,它能帮你把软件开发过程形成工作流,典型的工作流包括以下几个步骤 开发 提交 编译 测试 发布 有了Jenkins的帮助,在这5步中,除了第1步,后续的4步都是自动...

欧虞山 ⋅ 今天 ⋅ 0

revel

revel install go get github.com/revel/revelgo get github.com/revel/cmd create new app revel new git.oschina.net/zdglf/myapp run app revel run git.oschina.net/zdglf/myapp ot......

zdglf ⋅ 今天 ⋅ 0

49. Group Anagrams - LeetCode

Question 49. Group Anagrams Solution 思路:维护一个map,key是输入数组中的字符串(根据字符排好序) Java实现: public List<List<String>> groupAnagrams(String[] strs) { Map<Strin......

yysue ⋅ 今天 ⋅ 0

spring Email

使用spring发Email其实就是使用spring自己封装携带的一个javamail.JavaMailSenderImpl类而已。这个类可以当一个普通的java对象来使用,也可以通过把它配置变成spring Bean的方式然后注入使用...

BobwithB ⋅ 今天 ⋅ 0

spark 整理的一些知识

Spark 知识点 请描述spark RDD原理与特征? RDD全称是resilient distributed dataset(具有弹性的分布式数据集)。一个RDD仅仅是一个分布式的元素集合。在Spark中,所有工作都表示为创建新的...

tuoleisi77 ⋅ 今天 ⋅ 0

思考

时间一天天过感觉自己有在成长吗?最怕的是时光匆匆而过,自己没有收获!下面总结下最近自己的思考。 认识自己 认识另一个自己,人们常说要虚心听取别人意见和建议。然而人往往是很难做到的,...

hello_hp ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部