为了账号安全,请及时绑定邮箱和手机立即绑定

在linux环境下安装、配置、使用Maven

标签:
Java Linux

apache Maven,是一个软件(特别是Java软件)项目管理及自动构建工具,由Apache软件基金会所提供。基于项目对象模型(POM)概念,Maven利用一个中央信息片断能管理一个项目的构建、报告和文档等步骤。曾是Jakarta项目的子项目,现为独立Apache项目。

现在有很多Apache项目都已经开始采用Maven进行管理。

本篇文章简单介绍了Maven的相关知识,以及在Linux下的安装与使用方法。如果需要进一步了解Maven,请移步Maven官网。 http://maven.apache.org

安装Maven

Maven的下载地址: http://maven.apache.org/download.cgi

这里以最新的3.2.3版本为例进行安装,在这之前需要确保机器上已经安装了JDK。

首先下载Maven并解压,并移动到usr/local目录下

$ wget http: / /mirror.bit.edu.cn/apache /maven/maven-3/3.2.3/binaries/apache-maven-3.2.3-bin.tar.gz
$ tar vxf apache-maven-3.2.3-bin.tar.gz
$ mv apache-maven-3.2.3 /usr/local/maven3

修改环境变量,在/etc/profile中添加以下几行

MAVEN_HOME=/usr/local/maven3export MAVEN_HOMEexport PATH=${PATH}:${MAVEN_HOME}/bin

记得执行 source /etc/profile 使环境变量生效。

最后运行 mvn -v 验证maven是否安装成功,如果安装成功会打印如下内容

Apache Maven 3.2.3 (33f8c3e1027c3ddde99d3cdebad2656a31e8fdf4;2014-08-12T04:58:10+08:00)Maven home: /usr/local/maven3Java version: 1.7.0_65, vendor:Oracle CorporationJava home: /usr/lib/jvm/java-7-openjdk-amd64/jreDefault locale: en_US, platform encoding: UTF-8OS name: "linux", version: "3.13.0-35-generic", arch: "amd64",family: "unix"

使用Maven创建项目

无论是学习语言还是框架,先来一个Hello World基本上已经是套路了,我们也通过构建一个HelloWorld项目来了解如何使用Maven。首先通过maven创建helloworld项目

$ mvn archetype:create -DgroupId= helloworld -DartifactId=helloworld

生成的项目目录如下,其中src/main/java是源码目录,src/test/java是测试文件目录。一共只有三个文件,打开这三个文件,可以看到App.java中已经写好了一个HelloWorld程序,而AppTest中是Junit单元测试的代码,至于pom.xml,则给出了项目的一些基本信息以及依赖关系。

helloworld/├── pom.xml└── src├── main│  └── java│  └── helloworld│  └── App.java└── test└── java└── helloworld└── AppTest.java

这里主要看一下pom.xml文件,内容如下

<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.0http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion> 4.0.0 </modelVersion><groupId> helloworld </groupId><artifactId> helloworld </artifactId><version> 1.0-SNAPSHOT </version><packaging> jar </packaging><name> helloworld </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> 3.8.1 </version><scope> test </scope></dependency></dependencies></project>

在pom.xml文件中,首先描述了项目的定义,groupId:artifactId:packaging:version这个四元组能够唯一标记一个项目。我们不仅可以用这个四元组来标记我们的项目,也可以用来标记其它的项目,比如用来描述项目依赖关系。perperties中定义了项目的属性,也可以在这里定义变量并在其它的地方引用。至于最后的dependencies,则是描述了项目的依赖关系,Maven会根据依赖关系自动下载相应的文件并在编译时使用。

在大型项目开发中,往往会将其分成若干个子项目,每个子项目都有着自己的的pom.xml,它们与父pom.xml之间相当于继承的关系。

可以说,pom.xml文件的配置是整个Maven的核心重点,也是学习Maven过程中需要详细了解的内容。这里只给出了最简单的配置样例,详细了解可以查看官方文档。

接下来编译并运行Helloworld项目。

如果是第一次编译的话,需要联网,因为Maven会自动下载依赖包。

$ mvn package

下载的依赖包会保存在~/.m2/repository文件夹中,打开这个文件夹,我们会发现里面的包正是按前面所说的四元组目录结构进行存储的。Maven在依赖一个jar包时会先去本地库查找,如果没找到就会从网上下载。当然,并不是所有的包都能从网上下载到,比如我们自己开发的jar包,这时,我们就可以用 mvn install 命令将一个项目安装到本地仓库。 打包成功后我们会发现项目中多了一个target文件夹,目录结构如下

target/├── classes│  └── helloworld│  └── App.class├── helloworld-1.0-SNAPSHOT.jar├── maven-archiver│  └── pom.properties├── maven-status│  └── maven-compiler-plugin│  ├── compile│  │  └── default-compile│  │  ├── createdFiles.lst│  │  └── inputFiles.lst│  └── testCompile│  └── default-testCompile│  ├── createdFiles.lst│  └── inputFiles.lst├── surefire-reports│  ├── helloworld.AppTest.txt│  └── TEST-helloworld.AppTest.xml└── test-classes└── helloworld└── AppTest.class

可以看到,在package过程中,maven完成了编译、测试代码,生成测试报告,生成jar包等一系列工作。

最后,我们也可以手动运行jar包查看结果。

$ java - cp target/helloworld- 1.0 -SNAPSHOT.jar helloworld.AppHello World!

Maven常用命令

Maven的命令非常多,学习命令首先要了解Maven的生命周期。

Maven首先会验证并处理引用资源,之后进行项目编译,如果没有声明跳过测试,也会编译测试代码并进行测试、以成测试报告。最后,Maven会将编译好的内容进行打包,用于发布。 Maven命令与Maven的生命周期有着对应的关系,一个命令也经常会包含多个生命周期,比如 mvnpackage 会完成以上所有步骤。

这里列举几个常用的命令

  • mvn compile 编译项目

  • mvn test 编译运行单元测试

  • mvn package 打包(jar or war)

  • mvn install 将项目安装到本地仓库

  • mvn clean 清空项目

  • mvn eclipse:eclipse 生成eclipse工程

原文链接:http://outofmemory.cn/maven/linux-maven

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消