《Maven实战》徐晓斌 2011 机械工业出版社
 
一、介绍
1、名词

artifact:插件

极限编程XP

2、构建脚本:
maven——pom.xml(Project Object Model)
ant——build.xml

其基本结构是目标(target)、依赖(depends),以及实现目标的任务。
3、maven vs ant
Ant是过程式的,开发者显示指定每一个目标,以及完成该目标所需要执行的任务。
Maven是声明式的,项目构建过程和过程各个阶段所需的工作都由插件实现。
4、相关知识
Spring——实现IoC;
Hibernate——实现封装JDBC;
Eclipse安装目录eclipse.ini文件,添加vm配置指向jdk:
  1. --launcher.SSMaxPermSize
  2. 256m
  3. -vm
  4. D:\java\jdk1.7\bin\javaw.exe
  5. -vmargs
  6. -Dosgi.requiredJavaVersion=1.5
  7. -Xms128m
  8. -Xmx256m
 
m2eclipse——Eclipse下的Maven插件。
 
 
二、Maven使用入门
——以Hello World为例
1、mvn help:system——打印所有的Java系统属性和环境变量。
推荐用户复制M2_HOME/conf/settings.xml文件到~/.m2/settings.xml,在用户范围内修改Maven配置,而不是在全局范围修改。
Maven的核心是pom.xml,一个HelloWord项目的pom.xml:
参数解释:
modelVersion——POM模型的版本,对于Maven2以及Maven3来说,它只能是4.0.0
核心三元素——groupId、artifactId、version,定义了一个项目基本的坐标;在Maven的世界,任何的jar、pom或者war都是基于这些基本的坐标进行区分。
groupId:定义里项目属于哪个组,这个组往往和项目所在的组织或公司存在关联;
artifactId:定义了当前Maven项目在组中的唯一ID;
version:指定Hello World项目当前的版本,1.0-SNAPSHOT说明快照版本,处于开发中,不是稳定版本。
name:不是必须的,可用于声明一个友好的项目名称。
 
2、编写主代码
主代码:被打包到最终的构件,如jar中,默认位于src/main/java目录;
测试代码:只运行测试时用到,不会被打包,默认位于src/test/java目录;
使用Maven编译:
在项目根目录下,运行命令
mvn clean compile
clean:清理输出目录target/
compile:编译项目主代码
以上命令执行顺序:
clean:clean->resources:resources->compiler:compile
 
3、编写测试代码
添加junit测试依赖:
注:scope为依赖范围,test值表示只对测试有效,默认为compile,则表示对主代码和测试代码都有效。
测试代码:
典型单元测试的三个步骤:
(1)准备测试类及测试数据;
(2)执行要测试的行为;
(3)检查结果。
JUnit3中,约定所有需要执行测试的方法都以test开头
JUnit4中,需要执行的测试方法都应该以@Test进行标注
 
使用Maven执行测试:
运行mvn clean test
注意,以上命令实际执行了以下的任务:
clean:clean  resources:resources  compiler:compile  resources:testResources  compiler:testCompile.
详见maven生命周期。
 
以上命令可能提示java版本不够,compiler插件默认java1.3,需要做以下修改:
 
4、打包和运行
Pom默认打包类型为jar,执行命令进行打包:
mvn clean package
输出也位于target/输出目录中。
 
若让其他项目引用该jar,需要执行安装步骤,,将项目输出的jar安装到Maven本地仓库中:
mvn clean install
注意:执行test前会先执行compile,执行package前会先执行test,执行install前会执行package。
 
默认生成的jar是不能够执行运行的,因为main方法的类信息不回添加到manifest中。为了生成可执行的jar文件,需要借助maven-shade-plugin,配置插件如下:
 
5、使用Archetype生成项目骨架
Mav项目中基本的目录结构和pom.xml文件内容成为项目的骨架。
Maven提供了Archetype快速生成项目骨架。
Maven3中,运行以下命令:
mvn archetype:generate
接着根据提示输入项目groupId  artifactId  version  package包名等
 
 

《Maven实战》笔记-1-Maven使用入门的更多相关文章

  1. MAVEN学习笔记之Maven插件的应用(4)

    MAVEN学习笔记之Maven插件的应用(4) <build> <pluginManagement> <plugins> <plugin> <gr ...

  2. MAVEN学习笔记之Maven生命周期和插件简介(3)

    MAVEN学习笔记之Maven生命周期和插件简介(3) clean compile site三套生命周期相互独立. clean pre-clean 执行清理前的工作 clean 清理上一次构建生成的所 ...

  3. 学习笔记-[Maven实战]-第二章:Maven安装和配置

    在windows上安装Maven 1.检查JDK安装:在CMD下运行以下命令来检查JAVA安装情况: 命令: C:\Documents and Settings\Administrator>ec ...

  4. 学习笔记-[Maven实战]-第一章:Maven简介

    Maven简介: Maven 可翻译为:知识的积累,也可以翻译为"专家"或"内行". Maven 是一个跨平台的项目管理工具,是Apache组织中一个很成功的开 ...

  5. [maven] 实战笔记 - maven 安装配置

    1.下载地址http://maven.apache.org/download.html 2.windows下安装maven(1)下载 apache-maven-3.0-bin.zip 解压到任意目录下 ...

  6. [maven] 实战笔记 - 构建、打包和安装maven

    ① 手工构建自己的maven项目 Maven 项目的核心是 pom.xml.POM (Project Object Model,项目对象模型)定义了项目的基本信息,用于描述项目如何构建,声明项目依赖等 ...

  7. 读书笔记-《Maven实战》-关于Maven依赖传递的思考 2018/4/26

    上次读书笔记中,提到了依赖传递.看着依赖传递表,一直在思考为什么会是这样. 先看传递表: compile test provided runtime compile test provided run ...

  8. maven实战_01_搭建maven开发环境

    一 下载maven 在maven官网上可下载maven:http://maven.apache.org/download.cgi 下载好后,解压.我的解压到了:D:\maven\apache-mave ...

  9. Maven学习笔记:Maven简介

    Maven的概念 Maven是基于项目对象模型(POM,Project Object Model),可以通过描述信息来管理项目的构建,报告和文档的软件管理工具 Maven除了以程序构建能力为特色之外, ...

  10. 【构建工具】《Maven实战》读书笔记

    Maven是我们在做Java开发过程中用经常用到的一个辅助工具.本篇博客是我学习Maven的一个记录博客,学习过程主要参考<Maven实战>这本书.同时也参考了Maven的官方文档. 1. ...

随机推荐

  1. C#进阶之路(三):深拷贝和浅拷贝

    一.前言 本文主要讨论深浅拷贝的区别,如果实现.浅拷贝日常的应用比较懂,这里不做深入讨论,那么深拷贝如何实现?目前我知道的方式有三种:反射,反序列化和表达树的方式.这里需要注意如果用反射来实现深拷贝的 ...

  2. AngularJs1使用中出现错误 Error: [ng:areq]

    1.没有对应的控制器 2.有控制器但是路径没有配对

  3. Spark Shuffle大揭秘

    什么是Shuffle: Shuffle中文翻译为“洗牌”,需要Shuffle的关键原因是某种具有共同特征的数据需要最终汇聚到一个计算节点上进行计算. Shuffle面临的问题: 1. 数据量非常大: ...

  4. 操作Oracle 一条龙

    1 引用Oracle.DataAccess.dll 2 App.Config中配置连接字符串: Data Source=(DESCRIPTION = (ADDRESS = (PROTOCOL = TC ...

  5. tree指令

    tree 中文解释:tree功能说明:以树状图列出目录的内容.语 法:tree [-aACdDfFgilnNpqstux][-I <范本样式>][-P <范本样式>][目录.. ...

  6. 生产者与消费者--demo1---bai

    import java.util.ArrayList; import java.util.List; import java.util.Random; //自定义类,描述仓库 public class ...

  7. 深入理解CPU和异构计算芯片GPU/FPGA/ASIC (下篇)

    3.2.1 CPU计算能力分析 这里CPU计算能力用Intel的Haswell架构进行分析,Haswell架构上计算单元有2个FMA(fused multiply-add),每个FMA可以对256bi ...

  8. 11-16网页基础--HTML

    网页制作部分主要讲解三大部分: 1.HTML    超文本标记语言( 全称:Hyper Text  Markup Language) 专门编辑静态网页 2.CSS      网页美化:是HTML控制的 ...

  9. C# Remoting 简单实现

    此处下载源代码(VS2010编译通过)   http://files.cnblogs.com/files/qqhfeng/%E8%BF%9C%E7%A8%8B%E8%B0%83%E7%94%A8%E6 ...

  10. LNMP 1.1 php编译安装

    LNMP 是 Linux nginx mysql php  nginx和apache一样也是一种web服务.在静态web服务中nginx更胜一筹.在动态中不比apache有优势. LNMP的mysql ...