Maven实战之旅第六篇——maven常用指令

时间:2022-07-23
本文章向大家介绍Maven实战之旅第六篇——maven常用指令,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

Maven实战之旅第六篇——maven常用指令

前面在maven实战之旅第一篇(连接)我们说过,maven能够帮助我们更好的构建项目,能够帮我们自动化构建过程,从清理,编译,测试到生成报告,再到打包和部署。这个过程我们不需要一遍又一遍的输入命令,一次次点击鼠标,我们只需要使用maven配置好项目。然后输入简单的命令。Maven会自动帮我们处理好那些繁琐的任务。 Maven常用命令有以下几种: 清理 maven clean 测试 maven test 编译 maven compile 打包 maven package 部署 maven install

下面我们通过一个简单的maven版的用户管理系统来向读者详细的介绍maven这些常用指令。 首先我们在eclipse下新建一个mana-core的maven项目(项目源码我已经上传到csdn上面去了,但是为了让读者直到这个项目怎么来的,我还是大致的把关键地方讲一下,项目源码下载连接)项目结构如图所示

项目建完之后再点击项目右键->new->source folder, 分别建立两个source folder,一个src/main/resources和src/test/resources,这两个source folder是用来存放资源文件的。

建完后项目结构如图所示

把src/main/java下的package删掉,建一个名为com.company.usermange.model的package,并在该package下建一个实体类user,实体类包含用户id,username,password和nickname四个属性。接着在src/main/java建一个名为com.company.usermange.dao的package,作为控制层,在该package下建立一个接口IUserDao和接口实现类UserDao。然后再建立一个名为com.company.usermange.util的package用来存放工具类SqlHelper,并在该package中实现一个对数据库进行操作的工具类,同时在我们的资源文件夹src/mai/resources下建立一个连接数据库的所需参数的资源文件dbInfo.properties,SqlHelper利用该资源文件连接数据库。最后在我们的IUserDao和UserDao中实现对用户管理系统的增删改查功能。这就是我们这个用户管理系统的简单实现,写完后文件目录如下:

当然,我们还要配置项目的依赖包,直接在pom.xml文件中配置即可,我们这个项目是对mysql数据库进行操作,所以依赖jdbc相关jar包,此外我们还要对项目进行测试,所以需要juint相关jar包,配置如下:

<dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.10</version>
            <scope>test</scope>
        </dependency>

        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.24</version>
        </dependency>
    </dependencies>

实际上,当你把这些配置写到pom.xml文件中并保存的时候,你会看到maven console下会自动下载相关的依赖jar包。 项目完成之后,我们建立一个测试类进行测试,在src/test/java下建立一个名为com.company.usermange.dao的package,并在其中建立一个UserDaoTest类对UserDao中的方法进行测试。 至此,我们的项目以及测试类均已完成,大家可以直接把源码导入项目中(file->import->maven->existing maven project),也可以按照上面的步骤一步步来,代码复制粘贴即可,我这里重点是要讲解maven的几个常用指令,建立项目过程我就不详细叙述了。

Maven test:测试 点击pom.xml文件,右键run as->maven build…(还有一个是maven build,这两个的区别是前者可以输入指令第一次使用maven build…后,其中的指令会保存到maven build中),然后再goals中输入test,点击run,因为是第一次使用该指令,maven会下载相关的插件。

指令执行完毕之后,我们可以在控制台看到结果。测试了五个方法,0个失败。

此外从上图中我们可以看到,在执行test指令之前,target文件夹中没有任何内容,执行test之后,文件夹中多了一些文件。我们在console中看到的测试结果,在surefire-reports文件夹下的com.company.usermange.dao.UserDaoTest.txt文件可以看到。这里有一点要说明一下,maven在执行test指令时,是根据类名来查找测试类的,所以测试类的类名也有命名规则。这里我就不赘叙了,一般以以test开头,或者是test结尾均可以。

maven celan:清理 刚刚我们看到了,使用test指令,可以在target中生成一些文件,现在我们再执行以下clean指令,右键pom.xml文件->run as 在goals中输入clean,点击run。同样如果是第一次执行,maven也会自动下载一些相关的插件。执行完毕之后,你会发现target文件夹下的文件都被清空了,这就是clean的作用。将maven指令包括测试,编译,打包等生成的文件清空。

maven compile:编译 compile是对我们的maven项目进行编译操作,执行该指令后,会在target文件夹下看到我们执行编译生成的编译文件。通常我们比较习惯使用clean compile这样的组合指令。右键pom.xml->run sa->在goals中输入clean compile。执行完毕之后可以在workspace/mana-core/target中看到的生成的编译文件。

maven package:打包 执行package指令后可以将我们的项目打包成jar文件。右键pom.xml->run as->在goals中输入clean package,执行完毕之后可以在target中看到生成的jar文件。

maven install:将打包好的jar文件存入本地仓库 执行install指令,可以将项目打包成jar包并放在本地仓库,放在本地仓库后就可以供其它的项目依赖使用。因为我们在pom.xml文件中给mana-core项目配置过坐标,所以其他的项目就可以通过这个坐标在本地仓库中找到mana-core.jar文件,作为依赖。

这是执行完install指令后在本地仓库中的mana-core.jar文件。

maven deploy:将项目发布到远程仓库中(我们后面再讲解)

以上是maven最基本最常用的指令,当然还有一些其它不常用的指令,比如: 生成eclipse项目:mvn eclipse:eclipse 生成idea项目:mvn idea:idea 生成站点目录: mvn site Maven指令有时候也会组合着使用 只打包不测试:mvn -Dtest package 编译测试的内容:mvn test-compile 只测试而不编译,也不测试编译:mvn test -skipping compile -skipping test-compile 前面我们说的maven archetype也是maven指令