idea中创建项目中Maven Archetype和maven有什么区别_jar包


Maven (一)

一、 Maven 概念

什么是 Maven


Maven 使用项目对象模型(POM)的概念,可以通过一小段描述信息来管理项目的构建, 报告和文档的软件项目管理工具。
 Maven 除了以程序构建能力为特色之外,还提供高级项目管理工具。
由于 Maven 的 缺省构建规则有较高的可重用性,所以常常用两三行 Maven 构建脚本就可以构建简单的项 目。
由于 Maven 的面向项目的方法,许多 Apache Jakarta 项目发布时使用 Maven,而且 公司项目采用 Maven 的比例在持续增长。


Maven 和 ANT 的区别

Ant 是软件构建工具,Maven 的定位是软件项目管理和理解工具。

Maven 除了具备 Ant 的功能外,还增加了以下主要的功能:


1)使用 Project Object Model 来对软件项目管理; 
2)内置了更多的隐式规则,使得构建文件更加简单;
3)内置依赖管理和 Repository 来实现依赖的管理和统一存储; 
4)内置了软件构建的生命周期;


目前,绝大多数开发人员都把 Ant 当作 Java 编程项目的标准构建工具。遗憾的是, Ant 的项目管理工具(作为 make 的替代工具)不能满足绝大多数开发人员的需要。通过检 查 Ant 构建文件,很难发现项目的相关性信息和其它信息(如开发人员/拥有者、版本或站 点主页)。

Maven的生命周期


清理 -> 编译 -> 测试 -> 报告 -> 打包 -> 部署


企业用Maven解决的核心功能

管理jar包:


1.Maven自动管理jar包,你不再需要记住struts2,spring4,hibernate要使用哪些jar包,以后,都是maven帮助导入jar包。
 2.如果几个项目类似于迭代开发,显然要每次都拷贝之前项目的jar放入当前项目下,有了maven,你也不必在做这些工作。
 3.解决项目中相同插件有相同jar包,或者项目中jar包冲突问题。


idea中创建项目中Maven Archetype和maven有什么区别_apache_02



二、MAVEN的安装和配置

前提


Maven的使用必须是jdk1.6版本以上。


ECLIPSE的:

安装


第一步,下载Maven,可以从apache下载。
地址:http://maven.apache.org/
第二步,设置path路径
 1.首先当然使用"open .bash_profile",打开该文件.
 2.然后添加路径"export PATH=${PATH}:/Users/admin/Downloads/apache-maven-3.2.5/bin"
 3.使用"source .bash_profile"让配置生效。这里如果你配置的路径有问题,会报错
 4.按理说,前三部已经配置完毕,可使用"mvn -v"来效验是否配置成功了,我在这里报了2个错误,
  第一个错误是"-bash: /Users/admin/Downloads/apache-maven-3.2.5/bin/mvn: Permission denied",说明权限不够,需要添加权限。
使用“chmod a+x /Users/admin/Downloads/apache-maven-3.2.5/bin/mvn”。
  第二个错误是"-bash: /Users/admin/Downloads/apache-maven-3.2.5/bin/mvn: /bin/sh: bad interpreter: Operation not permitted",国外的coder给出的解释是“OS X 10.7.3 or higher的版本设置了隔离属性,
来阻止了执行,我们需要使用xattr -d com.apple.quarantine /bin/sh,来让其执行。


建库

repository(Mvn仓库):


不论project1,project2,project3分别需要哪些各自的jar包,都会从Maven仓库中去引用要用的jar包。
显然Maven仓库存放了大量的jar包,加入你要做一个s2sh项目,那么仓库中就要有s2sh的所有jar包,之后当你开发s2sh项目的时候,只需要引入仓库中的jar包就ok了。


idea中创建项目中Maven Archetype和maven有什么区别_apache_03


创建文件夹:


现在创建你自己的Maven仓库,也就是你以后要开发项目时,从这个你创建Maven仓库中去寻找jar包,我自己在/Users路径下创建了一个"mvn_repository"文件。


setting.xml


你创建了Mavan仓库后,需要告知Maven,原本Mavan给你提供了默认的Mavan仓库,既然我们创建了自己的,所以我们需要修改默认值。那么在哪里修改呢
在你下载的Mavan工具中,config目录下的有一个setting.xml文件,修改下列的路径。
<localRepository>/Users/mvn_repository</localRepository>


maven约定


我们现在要利用Maven来管理项目,那么显然你要符合Mavan的约定,约定指的是你创建source folder的名字


class path下有以下几个文件:


src/main/java:存放项目的java文件
 src/main/resource:存放项目的资源文件,如spring,hibernate的配置文件
src/test/java:存放所有测试文件
 src/test/resource:存放测试用的资源文件
target:项目输出位置
 pom.xml:当要从仓库中寻找jar包的时候用到的文件,但仅仅不只这一个功能。


图解:

Maven 的目录结构 :


idea中创建项目中Maven Archetype和maven有什么区别_maven_04


Eclipse 整合 Maven :

整合步骤:


idea中创建项目中Maven Archetype和maven有什么区别_apache_05


idea中创建项目中Maven Archetype和maven有什么区别_maven_06


idea中创建项目中Maven Archetype和maven有什么区别_maven_07


指定 maven 的配置文件 :


idea中创建项目中Maven Archetype和maven有什么区别_jar包_08


Maven 仓库与配置:

1Maven 仓库是什么

Maven 仓库:


Maven 仓库是基于简单文件系统存储的,集中化管理 Java API 资源(构件)的一个服 
务。
仓库中的任何一个构件都有其唯一的坐标,根据这个坐标可以定义其在仓库中的唯一存 
储路径。
得益于 Maven 的坐标机制,任何 Maven 项目使用任何一个构件的方式都是完全 相同的,Maven 可以在某个位置统一存储所有的 Maven 项目共享的构件,这个统一的位置就是仓库,
项目构建完毕后生成的构件也可以安装或者部署到仓库中,供其它项目使用。 
对于 Maven 来说,仓库分为两类:本地仓库和远程仓库。


远程仓库 :


远程仓库指通过各种协议如 file://和 http://访问的其它类型的仓库。这些仓库可能是第 
三方搭建的真实的远程仓库,用来提供他们的构件下载(例如 repo.maven.apache.org 和uk.maven.org 是 Maven 的中央仓库)。其它“远程”仓库可能是你的公司拥有的建立在文件 
或 HTTP 服务器上的内部仓库,用来在开发团队间共享私有构件和管理发布的。


本地仓库


本地仓库指本机的一份拷贝,用来缓存远程下载,包含你尚未发布的临时构件。


仓库配置

在 settings.xml 文件中配置本地仓库 :


本地仓库是开发者本地电脑中的一个目录,用于缓存从远程仓库下载的构件。默认的本 
地仓库是${user.home}/.m2/repository。用户可使用 settings.xml 文件修改本地仓库。



IDEA配置:


idea中创建项目中Maven Archetype和maven有什么区别_maven_09


idea中创建项目中Maven Archetype和maven有什么区别_jar包_10


idea中创建项目中Maven Archetype和maven有什么区别_jar包_11


idea中创建项目中Maven Archetype和maven有什么区别_apache_12


idea中创建项目中Maven Archetype和maven有什么区别_jar包_13


创建好了:

来创建依赖,继承


idea中创建项目中Maven Archetype和maven有什么区别_apache_14


测试:


idea中创建项目中Maven Archetype和maven有什么区别_apache_15


如果要创建:

继承和聚合:


idea中创建项目中Maven Archetype和maven有什么区别_maven_09


idea中创建项目中Maven Archetype和maven有什么区别_jar包_17


按照上面的建一个项目,然后在建一个model,
就可以了,按照上面的那个更改配置样式的就可以去调整文件。


idea中创建项目中Maven Archetype和maven有什么区别_maven_18


idea中创建项目中Maven Archetype和maven有什么区别_jar包_19


配置文件。


Maven 和 ANT 的区别 :

Ant 是软件构建工具,Maven 的定位是软件项目管理和理解工具。Maven 除了具备 Ant

的功能外,还增加了以下主要的功能:


1)使用 Project Object Model 来对软件项目管理; 
2)内置了更多的隐式规则,使得构建文件更加简单; 
3)内置依赖管理和 Repository 来实现依赖的管理和统一存储; 
4)内置了软件构建的生命周期; 
目前,绝大多数开发人员都把 Ant 当作 Java 编程项目的标准构建工具。遗憾的是, 
Ant 的项目管理工具(作为 make 的替代工具)不能满足绝大多数开发人员的需要。通过检 
查 Ant 构建文件,很难发现项目的相关性信息和其它信息(如开发人员/拥有者、版本或站 
点主页)。


Maven 工程

Maven 的工程类型 :

1.POM 工程


POM 工程是逻辑工程。用在父级工程或聚合工程中。用来做 jar 包的版本控制。


2.JAR 工程


将会打包成 jar 用作 jar 包使用。即常见的本地工程 - Java Project。


3.WAR 工程


将会打包成 war,发布在服务器上的工程。如网站或服务。即常见的网络工程 - Dynamic  
Web Project。war 工程默认没有 WEB-INF 目录及 web.xml 配置文件,IDE 通常会显示工程错误,提供完整工程结构可以解决。 
在IDEA不会有这问题。


填写项目信息 :

Group Id 公司域名倒写

Artifact Id 项目名

Version 版本名

Packaging 项目类型

Jar java 项目

War : web 项目

POM: 父项目.如果项目有子项目,项目必须是 pom

Name : 自定义名称,内容任意

Description: 描述.详细描述.

Parent Project: 如果当前项目有父项目时填写 。

Maven 项目结构 :


src/main/java 这个目录下储存 java 源代码 
src/main/resources 储存主要的资源文件。比如spring的xml配置文件和log4j的properties 
文件。 
src/test/java 储存测试用的类,比如 JUNIT 的测试一般就放在这个目录下面 
src/test/resources 储存测试用的资源文件 
src 包含了项目所有的源代码和资源文件,以及其他项目相关的文件。 
target 编译后内容放置的文件夹 
pom.xml 是 Maven 的基础配置文件。配置项目和项目之间关系,包括配置依赖关系等 
等