《项目管理利器Maven》学习(三):常用的maven命令介绍
来源:互联网 发布:caffe coffee 编辑:程序博客网 时间:2024/05/17 23:51
maven命令有很多,但是比较常用的命令有下面这些:
下面就来看看下面五个命令的使用:
mvn -v/version:用来查看Maven版本
mvn compile:用来对源文件进行编译
mvn test:用来运行测试程序
mvn package:用来对项目进行打包
mvn clean:用来清空项目,也就是删除maven项目下的target目录
mvn install:安装jar包到本地仓库中
新建一个maven项目maven02,像第一个maven项目的示例那样构建骨架。
编写的Speak.java源文件代码是:
package com.demo.maven02.util;import com.demo.maven01.model.HelloWorld;public class Speak {public String sayHi() {return new HelloWorld().sayHello();}}
编写的SpeakTest.java测试源文件代码是:
package com.demo.maven02.util;import org.junit.*;import org.junit.Assert.*;public class SpeakTest {@Testpublic void testSayHi() {Assert.assertEquals("Hello World!",new Speak().sayHi());}}
由于在代码中我们导入了项目maven01下的com.demo.maven01.model.HelloWorld类,因此我们编写的
pom.xml配置文件为:
<?xml version="1.0" encoding="UTF-8"?><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/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <!-- groupId的值是项目的包名 --> <groupId>com.demo.maven02</groupId><!-- artifactId的值是模块名 --> <artifactId>maven02-util</artifactId><!-- version的值是版本 --> <version>0.0.1SNAPSHOT</version><dependencies> <!-- 导入Junit依赖 --> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.10</version> </dependency> <!-- 导入maven01-model依赖 --> <dependency> <groupId>com.demo.maven01</groupId> <artifactId>maven01-model</artifactId> <version>0.0.1SNAPSHOT</version> </dependency></dependencies> </project>
我们使用命令mvn compile编译源代码:
上面的结果是编译失败,原因是在本地仓库中和远程中央仓库中找不到和maven01的相关的jar文件,这就需要
我们手动将maven01的项目打包后,添加到本地仓库中,供maven02项目的使用。
在项目maven01中我们已经打包成功,只需要用命令mvn install安装jar包到本地仓库中即可:
我们在本地仓库中可以找到项目maven01的jar文件:
接下来我们继续项目maven02的示例,由于编译失败,生成的target目录需要清除,我们使用命令mvn clean清
除即可,也就是删除target目录。
那么我们使用命令mvn compile重新编译maven02项目,就会成功。
maven自动建立目录骨架
Maven集成了archetype插件,用于创建符合maven规定的目录骨架,这个目录骨架我们已经很清楚了,自己手
动创建很麻烦繁琐。
在进行自动创建之前,先来解决一个问题,可以在最后加上:-DarchetypeCatalog=internal参数,表示的意思
是让它不要从远程服务器上取catalog,如果从远程服务器上下载会很慢或者卡死在Generating project in
Interactive mode,有时候导致创建失败。
参考我转载的文章:
Maven创建项目时出现Generating project in Interactive mode就一直卡住的解决方案
创建目录的两种方式
第一种:按照提示进行选择创建符合maven规范的目录
新建一个项目maven03,在这个目录中进行构建目录。
mvn archetype:generate
archetype:generate 目标会列出一系列的 archetype 让你选择。 Archetype 可以理解成项目的模型。 Maven
为我们提供了很多种的项目模型,包括从简单的 Swing 到复杂的 Web 应用。我们选择默认的 maven-archetype-
quickstart ,是编号7 ,如下图所示。
遇到Choose a number or apply filter是直接敲击回车选择默认的即可,也可以选择提示给你的数字。连打两个
回车,这时候让你确定项目属性的配置。
接下来输入的是,根据自己的要求输入即可,这些属性是我们在命令行中用 -D 选项指定的。该选项使用 -
Dname=value 的格式。回车确认,就完成了项目的建立,如下图所示:
-DgroupId=com.mycompany.helloworld
-DartifactId=helloworld
-Dversion=1.0-SNAPSHOT
-Dpackage=com.mycompany.helloworld
项目构建过程检查配置的属性,最后成功构建项目helloworld,在maven03目录下出现helloword项目
第二种:一次性创建符合maven规范的目录
mvn archetype:generate
-DgroupId=组织名,公司的网址反写+项目名
-DartifactId=项目名-模块名
-Dversion=版本号
-Dpackage=代码所存在的包
我们新建一个maven04的目录,在此目录下使用一次性创建来重新构建上面的示例。
输入:mvn archetype:generate -DgroupId=com.mycompany.helloworld -DartifactId=helloworld -
Dversion=1.0-SNAPSHOT -Dpackage=com.mycompany.helloworld -DarchetypeCatalog=internal
看结果:
这时候我们看一下 maven 给我们建立的文件目录结构:
maven的archetype插件建立了一个 helloworld 目录,这个名字来自 artifactId 。在这个目录下面,有一个
Project Object Model(POM) 文件 pom.xml 。这个文件用于描述项目,配置插件和管理依赖关系。
源代码和资源文件放在 src/main 下面,而测试代码和资源放在 src/test 下面。
Maven已经为我们建立了一个 App.java 文件:
正是我们需要的HelloWorld代码。所以我们可以构建和运行这个程序了。用下面简单的命令构建:
cd helloworld和mvn package
当你第一次运行maven的时候,它会从网上的maven库(repository)下载需要的程序,存放在你电脑的本地库
(local repository) 中,所以这个时候你需要有Internet连接。Maven默认的本地库是 ~/.m2/repository/ ,在
Windows 下是 %USER_HOME%/.m2/repository/ 。修改了默认的本地仓库则会下载到修改后的本地仓库中。
打包成功后,这个时候, maven在helloworld下面建立了一个新的目录target/ ,构建打包后的jar文件
helloworld-1.0-SNAPSHOT.jar 就存放在这个目录下。编译后的 class 文件放在 target/classes/ 目录下面,测试
class 文件放在 target/test-classes/ 目录下面。
为了验证我们的程序能运行,执行下面的命令:
java -cp target/helloworld-1.0-SNAPSHOT.jar com.mycompany.helloworld.App
运行成功!!
- 《项目管理利器Maven》学习(三):常用的maven命令介绍
- 《项目管理利器Maven》学习(七):使用Eclipse创建Maven项目遇到的问题
- 项目管理利器(Maven)——Maven的生命周期
- 项目管理利器-maven
- 项目管理利器-Maven
- 项目管理利器--Maven
- Maven项目管理利器
- 项目管理利器-maven
- 项目管理利器Maven
- 项目管理利器-maven
- 项目管理利器Maven
- Maven项目管理利器
- 项目管理利器--Maven
- 《项目管理利器Maven》学习(六):Eclipse中配置Maven及创建Maven项目
- 项目管理利器maven学习总结
- 《项目管理利器Maven》学习(一):Maven概述及搭建Maven开发环境
- 项目管理利器——Maven(慕课网学习笔记)
- 项目管理利器(Maven)——maven介绍及环境搭建
- Linux 进程间通信:信号量
- C++双冒号的作用
- SpringMVC和hibernate工作流程描述
- 动画用xml和Java代码之间的简单转换
- AAC 文件解析及解码流程
- 《项目管理利器Maven》学习(三):常用的maven命令介绍
- gdb 打印字符串全部内容
- String常量池
- ROS中geometry_msgs消息类型
- ZigBee之串口(简)
- Android的多语言实现
- java 正则表达式Matcher方法讲解--上篇
- 二叉树基本概念、二叉排序树、二叉平衡树与笛卡尔树
- 转自曼曼的搭建lnmp环境