《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. 每天一个linux命令(15):head命令

    版权声明更新:2017-05-19博主:LuckyAlan联系:liuwenvip163@163.com声明:吃水不忘挖井人,转载请注明出处! 1 文章介绍 本文介绍了Linux下面的mv命令. 2. ...

  2. Balanced Lineup(线段树的简单了解)

    个人心得:线段树就是将一段序列拆分为一个个单独的节点,不过每俩个节点又可以联系在一起,所以就能很好的结合,比如这一题, 每次插入的时候都将这一段区间的最大最小值更新,就能大大减少时间. 这个线段树建立 ...

  3. ACM学习历程—Hihocoder 1139 二分·二分答案(bfs)

    http://hihocoder.com/problemset/problem/1139 这题提示上写的是二分,但是感觉不二分应该也可以,至少题目是AC的... 二分的思想就是二分答案的值,看能不能在 ...

  4. 输入一个链表,输出该链表中倒数第k个结点

    package suanfa; import suanfa.doubleLinkedList.Node; public class solution { public Node find(Node h ...

  5. Unity 5 官方打包管理工具 Asset Bundle Manager

    http://blog.csdn.net/suifcd/article/details/51570003 Unity5在Asset bundle 打包管理上采用了全新的方式,不需要再对每个文件进行MD ...

  6. hihoCoder#1139(二分+bfs)

    时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 在上一回和上上回里我们知道Nettle在玩<艦これ>,Nettle在整理好舰队之后终于准备出海捞船和敌军交战了 ...

  7. 使用Spring Boot 和Spring Data JPA访问mysql数据库

    在Spring中使用JdbcTemplate是一种基本的数据访问方式,但是仍然需要较多的代码,为了解决这些大量枯燥的数据操作语句,我们可以使用ORM框架,比如:Hibernate,通过整合Hibern ...

  8. zedgraph控件的一些比较有用的属性

    (1)zedgraph控件属性具体解释: AxisChange()() ->> This performs an axis change command on the graphPane. ...

  9. django的settings.py设置session

    ############ # SESSIONS # ############ SESSION_CACHE_ALIAS = 'default' # Cache to store session data ...

  10. DVWA平台v1.9-Brute Force

    Low: 随便输一下用户名,密码,test 点击Login 显示用户名或密码错误 在owasp-zap查看数据包 点击,就会转到这 右键,点击Fuzz 点击Remove删除默认的 选定参数变量值,点击 ...