文档章节

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
私信 提问
关于Apache Maven的学习(一)

3月4日学习总结 前言 : 出于某些原因(一无所成的忧虑感,对职业生涯的迷茫等),近期开始学习Spring Boot。在观看Spring Boot的网络课程(第一节)时,了解到需要掌握的前置知识是Maven与S...

夏威夷max
03/05
0
0
maven入门 (二)_私服安装与上传下载

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

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

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

-鹏
2015/10/19
154
2
使用Leopard Redis操作Redis

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

Leopard后端框架
2015/02/12
95
2
springboot 集成elasticsearch遇到的坑

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

Meet相识_bfa5
2017/11/07
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Giraph源码分析(八)—— 统计每个SuperStep中参与计算的顶点数目

作者|白松 目的:科研中,需要分析在每次迭代过程中参与计算的顶点数目,来进一步优化系统。比如,在SSSP的compute()方法最后一行,都会把当前顶点voteToHalt,即变为InActive状态。所以每次...

数澜科技
今天
4
0
Xss过滤器(Java)

问题 最近旧的系统,遇到Xss安全问题。这个系统采用用的是spring mvc的maven工程。 解决 maven依赖配置 <properties><easapi.version>2.2.0.0</easapi.version></properties><dependenci......

亚林瓜子
今天
10
0
Navicat 快捷键

操作 结果 ctrl+q 打开查询窗口 ctrl+/ 注释sql语句 ctrl+shift +/ 解除注释 ctrl+r 运行查询窗口的sql语句 ctrl+shift+r 只运行选中的sql语句 F6 打开一个mysql命令行窗口 ctrl+l 删除一行 ...

低至一折起
今天
9
0
Set 和 Map

Set 1:基本概念 类数组对象, 内部元素唯一 let set = new Set([1, 2, 3, 2, 1]); console.log(set); // Set(3){ 1, 2, 3 } [...set]; // [1, 2, 3] 接收数组或迭代器对象 ...

凌兮洛
今天
4
0
PyTorch入门笔记一

张量 引入pytorch,生成一个随机的5x3张量 >>> from __future__ import print_function>>> import torch>>> x = torch.rand(5, 3)>>> print(x)tensor([[0.5555, 0.7301, 0.5655],......

仪山湖
今天
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部