您的位置:首页 > 编程语言 > Java开发

Java项目建构工具之Maven

2015-08-09 13:21 483 查看
J***A项目建构工具说明文档



作 者:阿苏是也
创建日期:2015-08-08
修改日期:2015-08-09
当前版本:1.1v

一、文档控制

文档版本

文档名说明



文档主题

本文档主要讲解J***A项目建构工具的使用说明文档,详细介绍了Maven工具,及如何使用Maven工具来实现自动化编译,打包,部署及测试和生成文档报告。也简单介绍Grade及Ant的建构工具。







二、建构工具简介

目前主要流行以下4种的建构工具

1、make

2、Ant

3、Maven

4、Gradle

5、IVY

使用这些建构工具我们能实现自动化的编译,打包,部署及测试和生成文档报告。

2.1、Make

早期的建构工具,主要用在Unix、linux下的C程序能实现自动编译

利用make工具,我们可以将大型的开发项目分解成为多个更易于管理的模块,对于一个包括几百个源文件的应用程序,使用make和makefile工具就可以简洁明快地理顺各个源文件之间纷繁复杂的相互关系。而且如此多的源文件,如果每次都要键入gcc命令进行编译的话,那对程序员来说简直就是一场灾难。



Make工具是通过makefile文件来描述源程序之间的相互关系并自动维护编译工作。而makefile 文件需要按照某种语法进行编写,文件中需要说明如何编译各个源文件并连接生成可执行文件,并要求定义源文件之间的依赖关系。

Makefile中描述命令主要都是操作系统本地shell脚本。因此不能进行跨平台。





2.2、Ant

Ant是意指“另一个整洁的工具”(Another NeatTool),创作它的动机就是因为受不了Makefile的语法格式,我们可以将Ant看成是一个Java版本的Make,也正因为使用了Java,Ant是跨平台的。

Ant使用XML定义构建脚本,相对于Makefile来说,这也更加友好。



和Make一样Ant也都是过程式的,开发者显式地指定每一个目标,以及完成该目标所需要执行的任务。针对每一个项目开发者都需要重新编写这一过程,这里其实隐含着很大的重复。

而Maven是声明式的,项目构建过程和过程各个阶段所需的工作都由插件实现,并且大部分插件都是现成的,开发者只需要声明项目的基本元素,Maven就执行内置的、完整的构建过程。这在很大程度上消除了重复。

Ant是没有依赖管理的,所以很长一段时间Ant用户都不得不手工管理依赖,这是一个令人头疼的问题。幸运的是,Ant用户现在可以借助Ivy管理依赖。而对于Maven用户来说,依赖管理是理所当然的,Maven不仅内置了依赖管理,更有一个可能拥有全世界最多Java开源软件包的中央仓库,Maven用户无须进行任何配置就可以直接享用。

2.3、Maven

ApacheMaven是一个强大构建工具,能够帮助我们实现自动化构建过程,从编译、打包,部署及测试和生成报告的工具



Maven不仅是构建工具,他还是一个依赖管理工具和项目信息管理工具.他还提供了中央仓库,能帮我们自动下载构件。



使用Maven带来好处:

1、使用简单命令,代替繁琐的重复性工作

2、Maven对于项目目录结构、测试用例命名方式等内容都有既定的规则,只要遵循了这些成熟的规则,用户在项目间切换的时候就免去了额外的学习成本,可以说是约定优于配置(Convention Over Configuration)。





2.4、Gradle

Gradle 是面向Java应用为主,以 Groovy 语言为基础。基于DSL(领域特定语言)语法的自动化构建工具。



1、gradle是第一个构建集成工具(the first build integration tool),2、与ant、maven、ivy有良好的相容相关性。

3、gradle对多工程的构建支持很出色,gradle支持局部构建。

4、轻松迁移:gradle适用于任何结构的工程

5、全力支持已有的Maven或者Ivy仓库基础建设



目前支持的IDE

1 IntelliJ IDEA 当前最新版本13.0.1

2 Eclipse

2.1 习惯使用eclipse的同学,也可以使用eclipse,建议版本eclipse-jee-juno-SR1-win32,然后安装gradle和groovy插件即可。

3 Android Studio



2.5、Ivy

Ivy是一个免费基于Java的依赖管理器。它提供了一些强大的功能包括依赖传递,ant集成, maven存储库兼容,持续集成,html报告等



三、Maven

3.1、Maven简介

ApacheMaven是一个强大构建工具,能够帮助我们实现自动化构建过程,从编译、打包,部署及测试和生成报告的工具



Maven不仅是构建工具,他还是一个依赖管理工具和项目信息管理工具.他还提供了中央仓库,能帮我们自动下载构件。



使用Maven带来好处:

1、使用简单命令,代替繁琐的重复性工作

2、Maven对于项目目录结构、测试用例命名方式等内容都有既定的规则,只要遵循了这些成熟的规则,用户在项目间切换的时候就免去了额外的学习成本,可以说是约定优于配置(Convention Over Configuration)。

3、Maven是跨平台的

4、Maven能支持任务的软件开发方法

极限编程、瀑布模型等等

1、能让项目成员快速简单搭建复杂项目开发环境。

2、与版本控制系统结合后,所有人都能执行最新的构建并快速得到反馈

3、自动生成的项目报告也能帮助成员了解项目的状态,促进团队的交流。



Maven是通过描述信息(pom.xml)来管理项目的构建,报告和文档的软件项目管理工具。

Maven是一个项目管理工具,包含如下内容:

它包含了一个项目对象模型 (Project ObjectModel),

一组标准集合,

一个项目生命周期(Project Lifecycle),

一个依赖管理系统(Dependency ManagementSystem),和用来运行定义在生命周期阶段(phase)中插件(plugin)目标(goal)的逻辑。



Maven 和其他项目建构工具对比。参考B.1.5,其他建构工具



3.2、Maven安装

下面分别通过Maven独立工具和tomcat插件来介绍。



3.2.1、Maven工具安装

1、Apache-maven下载地址
http://maven.apache.org/download.cgi
最新版

apache-maven-3.3.1-bin.zip



2、解压到下面路径

E:\6_Java\3_ArcheTool\maven

新增环境变量M***EN_HOME

E:\6_Java\3_ArcheTool\maven\apache-maven-3.3.1

环境变量path = %M***EN_HOME%\bin

运行cmd



安装成功

本地仓库默认目录:

C:\Documents andSettings\asushiye\.m2\repository

我们可以添加自己想要的

3、添加本地仓库目录

E:\6_Java\3_ArcheTool\maven

新增文件夹 mavenRepo

修改maven目录conf下的setting.xml文件



重新设置eclipse的Maven插件中

Window-preference-maven



设置好后,使用命令创建一个Mave Project 时,自动下载相关Jar



3.2.2、Maven插件安装

这里我们在eclipse上安装Maven插件

M2eclipse在线安装地址为:

http://download.eclipse.org/technology/m2e/releases



http://download.jboss.org/jbosstools/updates/m2eclipse-wtp

官方网址:http://www.eclipse.org/m2e/download/

name名称为可自己设置,以m2e为例,官方下载一般都是以最新版本的为标准。

Wiki网址:

http://wiki.eclipse.org/M2E_updatesite_and_gittags





不管是离线安装,还是在线安装需确认两件事情

菜单->windows->preference



修改maven工具



查找之前apache-Maven安装的setting.xml



插件maven配置文件和仓库默认目录

C:\Documents and Settings\asushiye\.m2

点击“update Settings”会更加settings.xml配置文件指定仓库路径来更新本地仓库的路径

为保持独立版Maven工具的本地仓库和插件一致,我修改如下:



至此,maven插件已经安装完成。

Console下出现 Maven Console





第一次新建Mave Project 后时,依赖包会自动下载相关Jar



为了使项目能够编译,运行和部署,需要完成如下配置。



3.3、Maven配置

配置maven之前,需配置tomcat

3.3.1、使用Maven工具新建项目

1、创建java项目路径和java文件

创建项目文件夹 maven_helloword

新建maven目录:src\main\java\hello

新建java文件:HelloWorld.java



新建Greeter.java



项目根目录下,创建用于定义Maven项目的配置文件pom.xml

Pom.xml内容如下






2、编译

>mvn compile

生成target目录





3、打包

>mvn package

生成jar或war包





4、安装

>mvn install

安装到setting配置文件中指定仓库中




5、声明依赖

这个简单helloworld实例,并没有依靠任何扩展库,然而大部分的项目都需要引入扩展库来实现项目的功能。下面我们在HelloWorld中打印出当前时间,我们需要引入joda.time的扩展库

改写HelloWorld.java 代码



这个时候compile将报错,因为你没有在pom中配置依赖扩展库。



在pom.xml添加依赖




重新执行mvn compile

自动下载依赖包



若下载失败,暂时我解决方式是,将pom.xml 依赖包joda-time的版本改为2.3

重新执行mvn compile 成功



到这里恭喜你,已经学会maven一些简单应用。



通过Maven基本命令生成一个Java Project,首先通过mvn命令创建project,然后导入Eclipse IDE中,即可。



提示下面的方法没有验证成功,需要验证。

生成java Project TestMaven

打开 –cmd

Cd E:\6_Java\开发者突击

命令:

mvn archetype:create

-DgroupId=com.jizg

-DartifactId=testMaven -DarchetypeArtifactId=maven-archetype-webapp

在生成项目前会下载jar及maven相关文档





3.3.2、使用Maven插件新建项目

新建项目






第一个选项表示跳过构架类型的选择。

我们选择第二个选项



选择架构类型,不同的ArcheTypes架构类型,可以创建不同的项目

比如maven-archetype-webapp,用于创建Web应用



填写 Group Id 和Artifact Id

Artifact Id 为项目名称。

点击finish后,会自动下载相关jar文件

完成后,代码目录如下:



目录介绍:

Java Resoures: 下存放java资源;Libraries目录存放JDK

Jar 包和Maven指定的仓库目录下需要的Jar包

src:为web项目的所有代码文件,主要包含 java代码,resources文件(配置文件,日志文件等),及webapp的代码文件。

Target是maven编译和安装后的生成的文件目录。

pom.xml这个项目maven的配置文件。





其中index.jsp 代码如下

只是显示出helloworld





右击项目-选择run as –Maven test



显示测试成功,说明没有问题。



3.3.3、tomcat配置管理账号

配置管理员账号,是为了把项目的打包war并部署到tomcat服务器上。

打开文件tomcat_home/conf/tomcat_users.xml

<rolerolename="admin-gui"/>

<rolerolename="admin-script"/>

<rolerolename="manager-gui"/>

<rolerolename="manager-script"/>

<rolerolename="manager-jmx"/>

<rolerolename="manager-status"/>

<userusername="admin" password="admin"roles="manager-gui,manager-script,manager-jmx,manager-status,admin-script,admin-gui"/>



运行服务后,登录管理员

http://localhost:8080/manager

使用管理员账号能登录说明配置成功

下面将通过独立工具和插件来创建项目

3.3.4、Maven配置web服务器

在使用maven插件部署war包时,需要验证tomcat的管理员。

进入maven_home/conf/settings.xml

添加如下配置,增加tomcat服务器及用户名和密码

<server>

<id>tomcat</id>

<username>admin</username>

<password>admin</password>

</server>






3.3.5、配置pom

若要使用tomcat7来运行项目,还需再pom.xml文件中配置tomcat服务器插件

1、新增仓库地址

在根节点下

<!--配置仓库地址-->

<repositories>

<repository>

<id>maven_remote_1</id>

<url>http://mirrors.ibiblio.org/pub/mirrors/maven2/</url>

</repository>

</repositories>

2、新增tomcat服务器

在build节点下



<build>

<finalName>maven_helloworld</finalName>



<!--配置Tomcat服务器-->

<plugins>

<plugin>

<groupId>org.apache.tomcat.maven</groupId>

<artifactId>tomcat7-maven-plugin</artifactId>

<configuration>

<warFile>target/maven_helloworld.war</warFile>

<server>tomcat</server>

<url>http://localhost:8080/manager/text</url>

<path>/maven_helloworld</path>

</configuration>

</plugin>

</plugins>

</build>



3.3.6、编译运行项目

项目属性->run As -> runconfiguration…



Name:tomcat7_run这个使用maven运行的配置信息。
在Goals输入:tomcat7:run
在MavenRuntime:选择我们的Maven工具
点击“run”

若控制台,出现build success表明成功。 http://localhost:8080/maven_helloworld

在项目目录下,生成target目录



将项目编译打包部署到tomcat服务器上,请看下面

3.3.7、打包部署项目

项目属性->run As -> runconfiguration…

在Name输入:tomcat7_redeploy
在Goals输入:tomcat7:redeploy
在若使用命令:tomcat7:deploy 之前,请先执行mvn clean
在MavenRuntime:选择我们的Maven工具




3.4、Maven 仓库

参考资料:
http://www.cnblogs.com/luotaoyeah/p/3785044.html


3.5、常用命令

mvn archetype:create创建Maven项目

mvn compile 编译源代码

mvn deploy 发布项目

mvn test-compile 编译测试源代码

mvn test 运行应用程序中的单元测试

mvn site 生成项目相关信息的网站

mvn clean 清除项目目录中的生成结果

mvn package 根据项目生成的jar

mvn install 在本地Repository中安装jar

mvn eclipse:eclipse 生成eclipse项目文件

mvnjetty:run 启动jetty服务

mvntomcat:run 启动tomcat服务

mvn clean package-Dmaven.test.skip=true:清除以前的包后重新打包,跳过测试类



3.5.1、maven插件使用

若maven中依赖jar不能从中央仓库下载下来,则手工安装。



在goals中输入如下命令:

install:install-file-Dfile=E:\6_Java\5_javaJar\oracle\ojdbc5.jar -DgroupId=com.oracle-DartifactId=ojdbc5 -Dversion=11.2.0 -Dpackaging=jar



执行运行(RUN)后,会拷贝到maven仓库中





九、变更记录&常见问题&参考资料

9.1、变更记录

9.2、常见问题

9.3、参考资料

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: