您的位置:首页 > 运维架构 > Apache

Apache Maven 入门——maven介绍和用maven命令创建项目

2018-01-16 11:34 627 查看

maven是什么

Maven是跨平台的项目管理工具。主要服务于基于Java平台的项目自动构建,依赖管理和项目信息管理

对于程序员来说,最关心的是它的项目自动构建功能和依赖管理的功能。

下载和配置

下载

使用 maven 前,先安装 JDK 。 Maven 官网的下载链接是 : http://maven.apache.org/download.html

本文下载的是最新的 apache-maven-3.5.2-bin.zip 解压到本地文件夹中,解压的路径是D:\apache-maven-3.5.2。在配置maven之前,先确定安装配置了jdk,3.5.2版本的maven要求jdk1.7以上。

配置

在计算机系统变量中增加变量MV_HOME:D:\apache-maven-3.5.2

在PATH最后加上 ;%MV_HOME%\bin 用分号与前面的文字隔开。

打开dos窗口输入命令 mvn -v 可以看到安装的mvn信息



用命令创建maven项目

maven项目的目录约定:

maven项目采用“约定优于配置”的原则,src/main/java约定用于存放源代码,src/main/test用于存放单元测试代码,src/target用于存放编译、打包后的输出文件。这是全世界maven项目的通用约定。

MavenProjectRoot(项目根目录)
|----src
|     |----main
|     |         |----java ——存放项目的.java文件
|     |         |----resources ——存放项目资源文件,如spring, hibernate配置文件
|     |----test
|     |         |----java ——存放所有测试.java文件,如JUnit测试类
|     |         |----resources ——存放项目资源文件,如spring, hibernate配置文件
|----target ——项目输出位置
|----pom.xml ----用于标识该项目是一个Maven项目


理解maven仓库

首次运行完mvn -version后,会在用户目录下创建一个.m2的目录(比如:C:\Users\Administrator.m2),这个目录是maven的“本地仓库”,仓库是maven中一个很重要的概念。把本机上所有maven项目依赖的jar包统一管理起来,而且这些jar包用“坐标”来唯一标识( 唯一识别某个jar包文件名、版本号的标识 ),这样所有maven项目就不用把jar包复制到lib目录中。当编译时,会优先从本地的jar包去找,如果本地存在,就直接拿来用,如果不存在,就从Maven的中心仓库去下载。

用Maven命令创建项目

在 maven 中,我们是执行 maven 目标(archetype插件)来创建,逐步指定所创建的maven项目的组织名、模块名、版本号、打包方式等信息。

打开命令窗口,输入如下命令,即可自动创建一个java工程,本文中创建的路径是:C:\Windows\SysWOW64\helloworld

mvn archetype:generate -DgroupId=com.helloworld -DartifactId=helloworld -Dpackage=com.my.helloworld -Dversion=1.0-SNAPSHOT


...
[INFO] Generating project in Interactive mode (这里会卡一会儿,因为要联网获取项目模板)
[INFO] No archetype defined. Using maven-archetype-quickstart (org.apache.maven.archetypes:maven-archetype-quickstart:1.0)
Choose archetype:
1: remote -> br.com.ingenieux:elasticbeanstalk-service-webapp-archetype (A Maven Archetype Encompassing RestAssured, Jetty, Jackson, Guice and Jersey for Publishing JAX-RS-based Services on AWS' Elastic Beanstalk Service)
... (这里会自动列出很多项目模板,每种模板前面会有一个数字序号)
336: remote -> org.apache.maven.archetypes:maven-archetype-quickstart (An archetype which contains a sample Maven project.)
...
Choose a number or apply filter (format: [groupId:]artifactId, case sensitive contains): 336: (这里根据每个人机器上安装的eclipse插件不同,可能默认的数字不是这个,先不管,直接回车)
Choose org.apache.maven.archetypes:maven-archetype-quickstart version:
1: 1.0-alpha-1
2: 1.0-alpha-2
3: 1.0-alpha-3
4: 1.0-alpha-4
5: 1.0
6: 1.1
Choose a number: 6: (直接回车)
Define value for property 'groupId': : com.helloworld (可暂时先理解成类似package或namespace的名称,通常我们填写组织机构名称缩写)
Define value for property 'artifactId': : helloworld (组件名称,可暂时理解成项目名称)
Define value for property 'version':  1.0-SNAPSHOT: : (版本号,直接回车,默认1.0-SNAPSHOT)
Define value for property 'package':   com.helloworld: : (打包后的jar文件名,相当于.net中项目最后生成的程序集dll名称)
Confirm properties configuration:
groupId: com.helloworld
artifactId: helloworld
version: 1.0-SNAPSHOT
package: com.helloworld
Y: :  (回车确认)
...
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS (项目创建成功)
[INFO] ------------------------------------------------------------------------
...


用Maven命令编译项目

C:\Windows\System32>cd C:\Windows\SysWOW64\helloworld  进入项目根目录
C:\Windows\SysWOW64\helloworld>mvn clean compile  编译


[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building helloworld 1.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
Downloading from central: https://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-resources-plugin/2.6/maven-resources-plugin-2.6.pom Downloaded from central: https://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-resources-plugin/2.6/maven-resources-plugin-2.6.pom (8.1kB at 4.7kB/s)(下载必须的jar包)
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ helloworld ---
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ helloworld ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory C:\Windows\SysWOW64\helloworld\src\main\resources
[INFO]
[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ helloworld ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 1 source file to C:\Windows\SysWOW64\helloworld\target\classes
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS (编译成功)
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 03:08 min
[INFO] Finished at: 2018-01-16T15:37:53+08:00
[INFO] Final Memory: 12M/28M
[INFO] ------------------------------------------------------------------------


参考文章:

https://www.cnblogs.com/yjmyzz/p/3495762.html

http://www.oracle.com/technetwork/cn/community/java/apache-maven-getting-started-1-406235-zhs.html

http://www.cnblogs.com/xdp-gacl/p/3498271.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: