Maven 快速入门

安装

Maven是一个Java工具,因此你的电脑上必须安装有JAVA环境(JDK或者JRE)

首先,从官方下载 Maven ,我这里下载的是 3.5 的版本。

本文是在Mac环境中安装的,首先创建一个文件夹,将 tar 包解压缩。

bogon:tools rousseau$ tar -xvzf apache-maven-3.5.3-bin.tar.gz 
bogon:tools rousseau$ cd apache-maven-3.5.3/
bogon:apache-maven-3.5.3 rousseau$ ./bin/mvn -version
Apache Maven 3.5.3 (3383c37e1f9e9b3bc3df5050c29c8aff9f295297; 2018-02-25T03:49:05+08:00)
Maven home: /Users/rousseau/tools/apache-maven-3.5.3
Java version: 1.8.0_131, vendor: Oracle Corporation
Java home: /Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "mac os x", version: "10.11.6", arch: "x86_64", family: "mac"

将 bin 目录加入到你的环境变量中。

配置

Maven的配置分三个级别:Project级别、全局 Installation 和 用户 User 级别。用户的配置可以在 ${user.home}/.m2/settings.xml 文件中具体指定,这个文件不是必须的,如果没有就会使用默认配置。

配置本地 Repository

默认的 Repository 位置为 ${user.home}/.m2/repository/ ,可通过配置文件修改。

<settings>
  ...
  <localRepository>/path/to/local/repo/</localRepository>
  ...
</settings>

配置代理 Proxy

其它还有并发配置 Parallel Artifact Resolution Configuration、安全及部署配置 Security and Deployment Settings

创建工程

首次执行的时候需要从Maven中央仓库下载一些依赖包,所以可能会花一些时间。由于网络超时的原因,很可能不会一次成功,需要多试几次。

bogon:maven rousseau$ ~/tools/apache-maven-3.5.3/bin/mvn archetype:generate -DgroupId=com.cocowool.app -DartifactId=my-app -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
# 工程创建后,可以查看目录结构
bogon:maven rousseau$ cd my-app/

生成的工程中,POM.xml 位于根目录下,src/main/java 存放工程代码,src/test/java 存放测试代码。

POM 文件

POM.xml 是Maven进行工程构建的最主要的配置文件,本文中的 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/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.cocowool.app</groupId>
  <artifactId>my-app</artifactId>
  <packaging>jar</packaging>
  <version>1.0-SNAPSHOT</version>
  <name>my-app</name>
  <url>http://maven.apache.org</url>
  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
  </dependencies>
</project>

打包

执行mvn package可以对工程进行打包,输出 jar 包。

bogon:my-app rousseau$ ~/tools/apache-maven-3.5.3/bin/mvn package
[INFO] Building jar: /Users/rousseau/Projects/java.my/study/maven/my-app/target/my-app-1.0-SNAPSHOT.jar
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 03:55 min
[INFO] Finished at: 2018-05-08T12:43:13+08:00
[INFO] ------------------------------------------------------------------------
# 生成的jar包存放在 target 目录下
bogon:my-app rousseau$ java -cp target/my-app-1.0-SNAPSHOT.jar com.cocowool.app.App
Hello World!

Maven 支持的阶段

Maven主要的阶段包含以下几个

名称

备注

validate

对工程进行校验

compile

编译工程的源文件

test

使用单元测试框架对工程进行测试

package

以部署的格式打包源代码,例如 jar 包

integration-test

如果需要,可以处理并将包部署到可进行整合测试的环境中

verify

运行并检查包是否符合质量要求

install

将包安装到本地仓库

deploy

将包拷贝到一个远程仓库供其他工程调用

clean

清理之前操作产生的临时文件

site

产生文档

后记

参考资料: 1、Maven 2、Maven in 5 Minutes 3、Installing Apache Maven 4、Configuring Maven

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏决胜机器学习

Redis专题(六)——Redis高可用(复制篇)

Redis专题(六) ——Redis高可用(复制篇) (原创内容,转载请注明来源,谢谢) 一、单台服务器 单台redis服务器,会出现单点故障,且需要承受所...

36860
来自专栏zhangdd.com

redis官方集群手动故障转移测试

有的时候在主节点没有任何问题的情况下强制手动故障转移也是很有必要的,比如想要升级主节点的Redis进程,我们可以通过故障转移将其转为slave再进行升级操作来避...

21520
来自专栏别先生

关于yum网络版仓库(本地yum仓库的安装配置,如果没网了,做一个局域网内的yum仓库)

2017-11-13 22:49:48 1:两种方式:     a、每一台机器都配一个本地文件系统上的yum仓库 file:///packege/path/ ...

221100
来自专栏上善若水

013android初级篇之Android Studio 引用源码模块,jar及so文件

013android初级篇之Android Studio 引用源码模块,jar及so文件

25320
来自专栏云计算教程系列

使用Solr向您的站点添加自定义搜索

Solr是一个高性能,采用Java5开发,基于Lucene的全文搜索服务器。同时对其进行了扩展,提供了比Lucene更为丰富的查询语言,同时实现了可配置、可扩展...

10410
来自专栏全栈之路

Android Studio遇到的坑

org.gradle.jvmargs=-Xmx512m MaxHeapSize=1024m android.enableAapt2=false

11730
来自专栏向治洪

Android Studio安装插件

Android Studio安装插件的方式其实和Eclipse大同小异。废话不多说,直接上图: ? 区域1:你当前已经安装了的插件 区域2:在线安装 区...

21480
来自专栏我的博客

aapt获取apk版本等信息

简介: aapt即Android Asset Packaging Tool,我们可以在SDK的platform-tools目录下找到该工具。aapt可以查看、 ...

32170
来自专栏漏斗社区

Java代码审计| Spring框架思路篇

相信小伙伴们通过Java代码审计入门篇对Java的环境和工具有了一定的了解,重点掌握了Tomcat部署使用、IDEA部署WEB项目与调试、Maven项目管理工具...

26120
来自专栏程序员叨叨叨

windwos平台下 Android SDK更新慢的解决方法

我们在使用Eclipse的Android SDK更新时,常常会遇到SDK更新慢或更新不了的问题(Fail to fetch...),接下来我们来看看解决办法:

8630

扫码关注云+社区

领取腾讯云代金券