Maven实战指南 04

第四章Eclipse合作合作

4.1 先谈谈合作意向

前面我们用手动方式折腾出了一个HelloWorld,出是出来了,可是太麻烦。

咱不记得命令了怎么办?还有那些插件坐标,哪个记得住呢?要命的是编写代码,用的文档编辑器,一点都不专业,也没点点提示。以前用的Eclipse编代码多好呀,哪里处理问题,里面就提示错误;对不记得的API,也能随时提供帮助。

能不能将对Maven的操作同Eclipse结合起来,在Eclipse上用图形化界面和菜单式命令,协作咱完成对Maven的操作呢?

有需求就有市场,有市场,就有人挖掘并且解决。而且Eclipse本身就是一个开源精神好强烈的开源工具,能很好的接纳集成第三方的插件。

有了这些前提,m2eclipse出来了!

4.2 安装配置M2Eclipse插件

1、下载Eclipse,建议下载开发JavaEE版本的Eclipse IDE,因为我们后面最终是要开发Web应用,下载连接为:

   http://www.eclipse.org/downloads/packages/eclipse-ide-java-ee-developers/mars2

打开页面如图:

 

结合整个环境,我这下载的是 Windows 64-bit注意是Mars Packages),eclipse-jee-mars-2-win32-x86_64.zip

 

2、使用解压工具解压eclipse-jee-mars-2-win32-x86_64.zip文件,点击解压目录下eclipse目录下的eclipse.exe文件,启动Eclipse如图:

 

 

3、点击菜单栏中的 window->Preferences选项,打开Preferences窗口,如图:

 

很凑巧呢,该版本的Eclipse里面,内置了Maven呢,也就是m2eclipse插件。接下来咱们就没必要自己再去下载m2eclipse插件了,咱只要配置配置就可以使用Maven了。

 

4、展开上图中Maven选项,选中其中的Installations,显示如图:

 

右边显示的是当前Eclipse内置的Maven。为了整合我们前面自己安装的最新Maven,继续下面步骤。

 

5、点击上图右边的 Add按钮,弹出New Maven Runtime窗口,选择咱们装的Maven,如图:

 

Installation home后面,选择咱们以前安装的Maven目录,点击Finish按钮,回到Preferences窗口,并且选中刚刚添加的Maven

保险起见,点击 Preferences窗口中的Apply按钮,保存刚刚的操作。

 

6、选中PreferencesMaven里面的User Setting,显示如图:

 

Global Setting框中选中咱们安装的Maven下的settings.xml

User Setting框中选中咱们自己登录用户目录下的settings.xml

一般是会默认显示的,如果不正常,自己手动选择。

图片上显示的是我电脑上的位置文件。

 

7、点击OK完成设置

8、点击菜单中的 File->Import选项,打开Import窗口如图:

 

9、选择上图里面的 Maven->Existing Maven Projects选项,点击Next按钮,在弹出的Import Maven Projects窗口中,选中咱们前面创建的Maven工程目录,如图:

 

 

10、点击 Finish按钮,咱们就可以在Eclipse中看到以前好不容易手动折腾出来的Maven工程,如图:

 

 

11、Eclipse的工程上,右击鼠标,选择Run As->Maven test,就可以完成咱们一起mvn test命令完成的运行测试代码,在EclipseConsole窗口中可以看到结果。如图:

 

 

  4.3 创建一个Maven项目

1、点击EclipseFile->New->Others,或点击File菜单下的快捷图标,打开New窗口如图:

 

 

2、选择Maven中的Maven Project,点击Next 按钮,打开New Maven Project窗口,不做改动,继续点击Next 按钮,出现如图界面:

 

列表中显示的是当前常用的archetype插件的groupIdartifactId和版本号,archetype插件,是用来帮咱们创建工程的,这功能我们在前面手动创建工程的时候使用过。

 

3、选中1.1版本的quickstart插件,如上图选项。点击Next 按钮,出现下一个窗口如下图。在窗口中输入咱们新创建工程的groupIdartifactIdpackageName和选择版本。

 

 

4、点击 Finish 按钮,创建出一个新的Maven项目,如图。

 

咱们就可以分别在src\main\java中和src\test\java中,添加咱们的Java源代码和测试代码。

为了方便,我这里直接将上次手动敲的HelloWorld.javaTestHelloWorld.java复制过来,同时把pom.xmljUnit的版本改成4.7(默认生成的是3.8.1)

 

到现在为止,咱们就用Eclipse+M2Eclipse插件,完成了Maven项目的创建和相关代码的编写。

  4.4 构建Maven项目

现在工程创建好,相关的代码也写好了,接下来就是程序员的老套路:清理旧操作、编译源代码、运行测试案例、打包安装了。

以前咱们是用的mvn clean|compile|test|install命令实现的,现在就在Eclipse中,点击命令选项就行。

鼠标右击左边的工程,点击Run As->Maven clean|test|install,如下图,就可以完成该工程清理、测试和打包安装。

 

当然,这里面缺少一个编译(compile)的选项。

这也是正常的,Eclipse一般都是自动编译的,而且在运行test之前,它都会把所有代码重新编译一遍。

如果我们一定要明确的做编译的动作,也是可以的。选择上图Run As后面的Maven build...选项,(注意,是后面带了...的选项哦),弹出如下图,在Goals后面的输入框中输入compile命令,点击Run按钮,就会执行编译操作。

 

到现在为止,咱们就把项目构建相关的动作,都折腾完了。这比以前手动使用mvn命令方便多了吧^_^

那以前咱们有生成过站点文档和API Doc文档啥的呢,在Eclipse+m2eclipse中又怎么体现呢?

不急,咱们下节慢慢道来。

 

  4.5 基于M2Eclipse完成所有工作

前面我们有基于Eclipse+m2eclipse完成了工程的基本构建,接下来咱们研究一下怎么样生成相关的文档和报告。

在第三章小结的时候,咱们有体验到这么点:Maven是依赖插件去做具体的事情的。比如创建工程、生成站点和生成JavaDoc API文档,这些都是有专门的插件。

咱们要做的事情,是告诉Maven使用哪个插件,Maven自动协调对应插件去完成特定的工作任务。

在第三章手动操作的时候,咱们是用mvn命令,后面指定插件的坐标(没有自定,mvn自动找仓库中最新的)来告知mvn做什么事,那在Eclipse+m2eclipse环境下,咱们通过什么样的方式,可以告诉maven使用哪些插件做哪些事情呢?

pom.xml骨架文件,对,pom.xml骨架文件就是做这事情的。咱们要做的就是在pom.xml文件中,按它的语法要求指定相关的插件坐标,maven在运行的时候,自动使唤插件完成对应的任务。

那怎么在pom.xml中描述这些插件的坐标,怎么样启动maven,让它可以协调指定的插件做事呢?

别急别急,写配置文件和启动maven,那不是分分钟钟的事情呀^_^

咱们先了解一下常用的插件有哪些,以及怎么样确定它们的坐标,这样才好在pom.xml中描述吧。

插件名称

用途

来源

maven-clean-plugin

清理项目

Apache

maven-compile-plugin

编译项目

Apache

maven-deploy-plugin

发布项目

Apache

maven-site-plugin

生成站点

Apache

maven-surefire-plugin

运行测试

Apache

maven-jar-plugin

构建jar项目

Apache

maven-javadoc-plugin

生成javadoc文件

Apache

maven-surefire-report-plugin

生成测试报告

Apache

 

稍稍列举几个吧,更多的咱们在后面的附录里面列出。

接下来咱们在咱们的工程里面,体验体验生成站点、运行测试、生成javadoc和生成测试报告插件的使用。

咱们一个个的来,先折腾一下运行测试。

1、Maven Repository(仓库)中找到surefire插件的坐标。

用浏览器打开http://mvnrepository.com/,在search输入框中输入surefire-plugin,点击search如下图:

 

点击maven-surefire-plugin,查看它的所有版本信息,点击想使用的版本(咱们这里使用的2.19.1),会显示该版本的groupIdartifactId等坐标信息。如图:

 

 

2、pom.xml中添加surefire插件描述。

Eclipse中打开pom.xml文件,在pom.xml后面添加一个build标签,里面添加surefire插件的描述信息,具体内容如下,被粗体显示的为新添加的内容。

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

<modelVersion>4.0.0</modelVersion>

 

<groupId>cn.com.mvnbook.demo</groupId>

<artifactId>MvnBookTP02</artifactId>

<version>0.0.1-SNAPSHOT</version>

<packaging>jar</packaging>

 

<name>MvnBookTP02</name>

<url>http://maven.apache.org</url>

 

<properties>

<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

</properties>

 

<dependencies>

<dependency>

<groupId>junit</groupId>

<artifactId>junit</artifactId>

<version>4.7</version>

<scope>test</scope>

</dependency>

</dependencies>

<build>

<plugins>

<plugin>

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

<artifactId>maven-surefire-plugin</artifactId>

<version>2.19.1</version>

<configuration>

<!--设置包含的测试类 -->

<includes>

<include>******</include>

</includes>

<!-- 设置不进行测试类 -->

<excludes>

<exclude>Test*</exclude>

</excludes>

<!-- 跳过测试阶段,測試類写的有问题也会出错,一般不推荐-->

<!--<skip>true</skip> -->

</configuration>

</plugin>

</plugins>

</build>

</project>

 

上面内容中,用红色标记的,就是咱们要配置的surefire-plugin的描述,具体的描述方式和说明,上面有注释了,这里就不累赘了。

3、启动Maven,运行test

鼠标右键工程,选择Run As->Maven testMaven会自动启动插件进行编译和测试。如果第一次运行测试,我们在控制台会发现如下下载信息,说明Maven将用到咱们刚刚配置的surefire-plugin运行测试代码。

[INFO] --- maven-surefire-plugin:2.19.1:test (default-test) @ MvnBookTP02 ---

[INFO] Downloading: https://repo.maven.apache.org/maven2/org/apache/maven/surefire/maven-surefire-common/2.19.1/maven-surefire-common-2.19.1.pom

 

好了,咱们用surefire-plugin体验了一下,在pom.xml中添加插件,并且启动maven执行插件的过程,解析来我们再重复前面的故事,再折腾一下javadoc-plugin,用来生成javadoc API帮助文档。

1、查找合适版本的坐标。

   mvnrepository.com中,类似查找surefire-plugin的方式,输入javadoc-plugin查询,找到自己中意版本的坐标信息。

2、javadoc-plugin添加到pom.xml

pom.xmlplugins标签之间,添加如下内容:

           <!-- 项目API doc报告-->

<plugin>

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

<artifactId>maven-javadoc-plugin</artifactId>

<version>2.7</version>

<configuration>  

                    <aggregate>true</aggregate>  

                </configuration>  

                <executions>  

                    <execution>  

                        <id>attach-javadocs</id>  

                        <goals>  

                            <goal>jar</goal>  

                        </goals>  

                       <!--执行maven test的时候运行插件-->

                        <phase>test</phase>

                    </execution>  

                </executions>  

</plugin>

这里面有javadoc-plugin的坐标信息外,还有其它配置信息,咱们先不管。中间有红色标记的信息,它的意思是当我们点击Run As->Maven test命令菜单的时候,执行javadoc插件,生成doc帮助文档。

 

3、运行javadoc-plugin插件,查看doc ap文档

右键工程 点击 Run As->Maven testmaven自动调用插件生成API文档。在工程的target目录下,会自动产生一个apidocs目录,里面就生成的API文档。

 

前面介绍了2个插件的坐标查找和配置,后面关于站点和测试报告的,咱们就不再做过程的累赘了,直接贴插件描述的配置,里面有关键点的中文注释,大家把它们移到咱们自己的pom.xml中,测试运行一把,就可以看到对应的执行结果。

剩下插件描述内容:

            <!-- 构建项目站点报告插件 -->

<plugin>

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

<artifactId>maven-site-plugin</artifactId>

<version>3.0-beta-3</version>

<configuration>

<!-- 配置站点国际化 -->

<locales>zh_CN</locales>

<!-- 输出编码 -->

<outputEncoding>GBK</outputEncoding>

</configuration>

</plugin>

<!-- 单元测试报告html -->

<plugin>

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

<artifactId>maven-surefire-report-plugin</artifactId>

<version>2.12.2</version>

<configuration>

<showSuccess>true</showSuccess>

</configuration>

<executions>

<execution>

<id>test-report</id>

<phase>test</phase>

</execution>

</executions>

</plugin>

 

<!-- 测试覆盖率的报告 -->

<plugin>

<groupId>org.codehaus.mojo</groupId>

<artifactId>cobertura-maven-plugin</artifactId>

<version>2.5.1</version>

<configuration>

<formats>

<format>html</format>

<format>xml</format>

</formats>

</configuration>

<executions>

<execution>

<id>cobertura-report</id>

<goals>

<goal>cobertura</goal>

</goals>

<phase>test</phase>

</execution>

</executions>

</plugin>

  4.6 小结

通过本章的内容介绍,咱们完全可以将用手动搞定的事情,在Eclipse+m2eclipse环境下搞定了。整个操作的思路和目的都是一样的,只是有点不同的是操作形式图形化了,更加方便了,这也是咱们研究m2eclipse的初衷不是。

当然,还有一个变化,那就是咱们是用的pom.xml事先描述好要使用的插件,maven在执行相关命令的时候,自动再协调相关插件,完成对应任务。

也就是说,我们后期还会有怎么样准确描述插件的标记的研究,那是后话。现在咱们只要将在配置过程中,用中文注释过的标记理解清楚就行,后面的后面在去弄,一步步来嘛 ^_^

 

版权所有,转载请友情注明  相关系列视频 http://cyedu.ke.qq.com

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值