《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. poj2411 Mondriaan's Dream[简单状压dp]

    $11*11$格子板上铺$1*2$地砖方案.以前做过?权当复习算了,毕竟以前学都是浅尝辄止的..常规题,注意两个条件:上一行铺竖着的则这一行同一位一定要铺上竖的,这一行单独铺横的要求枚举集合中出现连续 ...

  2. linkedLoop

    public class linkQueue <E>{ private class Node<E>{ E e; Node<E> next; public Node( ...

  3. FastAdmin 推荐 Git 在线学习教程

    FastAdmin 推荐 Git 在线学习教程 因为 FastAdmin 推荐使用 Git 管理代码,有很多小伙伴对 Git 不是很熟悉. 也苦于找不到好的教程,我就分享一个 Git 在线学习教程. ...

  4. Python collections系列之默认字典

    默认字典(defaultdict)  defaultdict是对字典的类型的补充,它默认给字典的值设置了一个类型. 1.创建默认字典 import collections dic = collecti ...

  5. think python chapter3

    3.1 built-in function type(42)=> <class 'int'> int('32')=>32 int(3.9) => 3 int(-2.3)= ...

  6. 在Linux上利用core dump和GDB调试segfault

    时常会遇到段错误(segfault),调试非常费劲,除了单元测试和基本测试外,有些时候是在在线环境下,没有基本开发和测试工具,这就需要调试的技能.以前介绍过使用strace进行系统调试和追踪<l ...

  7. linux php相关命令

    学习源头:http://www.cnblogs.com/myjavawork/articles/1869205.html php -m 查看php开启的相关模块 php -v 查看php的版本 运行直 ...

  8. linux 在vi文件中添加行号

    方法一: 1.显示当前行行号,在VI的命令模式下输入 :nu 2.显示所有行号,在VI的命令模式下输入 :set nu 方法二: 使用vi编辑~/.vimrc文件,在该文件中加入一行"set ...

  9. FileStream 常用的属性和方法

    FileStream常用的属性和方法 (转) 对流进行操作时要引用 using System.IO; 命名空间 FileStream常用的属性和方法: 属性: CanRead 判断当前流是否支持读取, ...

  10. Android SDK下载项的说明

    Tools下 1.android sdk tools 软件开发工具包(software development kit):包括测试.调试.第三方工具.模拟器.数据管理工具等. 2.android sd ...