文档章节

Maven

华山猛男
 华山猛男
发布于 2017/01/16 22:20
字数 1111
阅读 140
收藏 9

Maven 官网:http://maven.apache.org

一、简介

        Maven项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具。

        Maven 除了以程序构建能力为特色之外,还提供高级项目管理工具。由于 Maven 的缺省构建规则有较高的可重用性,所以常常用两三行 Maven 构建脚本就可以构建简单的项目。由于 Maven 的面向项目的方法,许多 Apache Jakarta 项目发文时使用 Maven。

        Maven这个单词来自于意第绪语(犹太语),意为知识的积累,最初在Jakata Turbine项目中用来简化构建过程。当时有一些项目(有各自Ant build文件),仅有细微的差别,而JAR文件都由CVS来维护。于是希望有一种标准化的方式构建项目,一个清晰的方式定义项目的组成,一个容易的方式发布项目的信息,以及一种简单的方式在多个项目中共享JARs。

二、配置

  1. 首先确定Jdk已经安装配置成功。
  2. 将解压的文件放置到想存储的位置,这里以D盘为例(D:\DevelopmentTool\apache-maven-3.3.9-bin)。
  3. 配置Maven环境变量(系统-高级系统设置-环境变量),添加系统变量(变量名:M2_HOME,变量值:D:\DevelopmentTool\apache-maven-3.3.9-bin)。
  4. 修改Path系统变量,在最前面添加:%M2_HOME%\bin;。
  5. 测试安装成功,CMD命令行模式,输入mvn -version,查看相关信息(所有命令mvn打头)。

三、建立简单的Maven项目

    手动建立文件夹及Java文件:

        HelloWorld\src\main\java\com\wen\helloWorld\HelloWorld.java

package com.wen.helloWorld;

public class HelloWorld{
	
	public String sayHello(){
		return "Hello World!";
	}

	public static void main(String[] args){
		System.out.println(new HelloWorld().sayHello());
	} 
}

    引入pom.xml文件,存放在根目录下(与src同级),pom文件格式如下:

<?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/xsd/maven-4.0.0.xsd">
	<!-- 模型版本 -->
	<modelVersion>4.0.0</modelVersion>
	<!-- 项目包名 -->
	<groupId>com.wen.helloWorld</groupId>
	<!-- 具体模块 -->
	<artifactId>HelloWorld</artifactId>
	<!-- 项目版本 -->
	<version>0.0.1-SNAPSHOT</version>
	<!-- 依赖项定义 -->
	<dependencies>
		
	</dependencies>
</project>

    打开cmd,进入到HelloWorld文件夹,输入命令mvn compile,便开始下载maven相关的jar包(默认存储路径:C:\Users\Administrator\.m2\repository),并编译该项目文件,在src同级目录下会产生target文件夹,里面有编译过后的class文件,到此编译成功。

    输入命令mvn clean清空编译文件。

    手动建立文件夹及Java文件HelloWorld\test\main\java\com\wen\helloWorld\HelloWorldTest.java

    添加测试用的Junit坐标至pom文件中(jar文件坐标可到http://mvnrepository.com查询):

<?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/xsd/maven-4.0.0.xsd">
	<!-- 模型版本 -->
	<modelVersion>4.0.0</modelVersion>
	<!-- 项目包名 -->
	<groupId>com.wen.helloWorld</groupId>
	<!-- 具体模块 -->
	<artifactId>HelloWorld</artifactId>
	<!-- 项目版本 -->
	<version>0.0.1-SNAPSHOT</version>
	<!-- 依赖项定义 -->
	<dependencies>
		<dependency>
		    <groupId>junit</groupId>
		    <artifactId>junit</artifactId>
		    <version>4.12</version>
		</dependency>
	</dependencies>
</project>

    输入命令mvn test 进行测试,即可看到编译后的输出。

    输入命令mvn package 进行打包,生成jar文件。

    输入命令mvn install 将项目打包好的jar文件安装到本地默认仓库(本例为C:\Users\Administrator\.m2\repository\com\wen\helloWorld\HelloWorld\0.0.1-SNAPSHOT)。

    将maven默认仓库位置转移

本例配置文件位置D:\DevelopmentTool\Apache-maven-3.3.9\conf\settings.xml,

默认位置为${user.home}/.m2/repository,

添加<localRepository>D:\DevelopmentTool\Apache-maven-3.3.9\repository</localRepository>到对应的位置(55行)。

    重新输入命令mvn compile 可以看到maven所需的jar文件全部存放在自定义的存储位置。

四、POM文件格式说明、CMD命令、远程仓库地址

文件格式

    modelVersion:POM模型版本 4.0.0固定

    groupId:一般指某个公司或者某个组织的某个项目,比如:org.springframework

    artifactId:一般指某个具体项目的某个具体模块,比如:spring-context

    version:项目版本

cmd中常用的命令

    mvn compile 编译

    mvn clean 清空

    mvn test 测试

    mvn package 打包

    mvn install 将项目安装到本地仓库,主要将其他项目打包好的jar安装到本地的默认仓库中

远程仓库地址

    http://mvnrepository.com

共有的仓库

    http://repo1.maven.org/maven2/

    http://repository.jboss.com/maven2/

    http://repository.sonatype.org/content/groups/public/

    http://mirrors.ibiblio.org/pub/mirrors/maven2/org/acegisecurity/

    http://maven.glassfish.org/content/groups/glassfish/

    https://nexus.sourcesense.com/nexus/content/repositories/public/

私有的仓库

    http://repository.codehaus.org/

    http://snapshots.repository.codehaus.org/

    http://people.apache.org/repo/m2-snapshot-repository

    http://people.apache.org/repo/m2-incubating-repository/

 

© 著作权归作者所有

华山猛男

华山猛男

粉丝 11
博文 189
码字总数 94238
作品 0
海口
程序员
私信 提问
加载中

评论(2)

老菜鸟0217
老菜鸟0217
mvn test的前提是需要在src下建立和main同级别的目录test
老菜鸟0217
老菜鸟0217
Perfect!

暂无文章

OpenStack 简介和几种安装方式总结

OpenStack :是一个由NASA和Rackspace合作研发并发起的,以Apache许可证授权的自由软件和开放源代码项目。项目目标是提供实施简单、可大规模扩展、丰富、标准统一的云计算管理平台。OpenSta...

小海bug
昨天
5
0
DDD(五)

1、引言 之前学习了解了DDD中实体这一概念,那么接下来需要了解的就是值对象、唯一标识。值对象,值就是数字1、2、3,字符串“1”,“2”,“3”,值时对象的特征,对象是一个事物的具体描述...

MrYuZixian
昨天
6
0
数据库中间件MyCat

什么是MyCat? 查看官网的介绍是这样说的 一个彻底开源的,面向企业应用开发的大数据库集群 支持事务、ACID、可以替代MySQL的加强版数据库 一个可以视为MySQL集群的企业级数据库,用来替代昂贵...

沉浮_
昨天
4
0
解决Mac下VSCode打开zsh乱码

1.乱码问题 iTerm2终端使用Zsh,并且配置Zsh主题,该主题主题需要安装字体来支持箭头效果,在iTerm2中设置这个字体,但是VSCode里这个箭头还是显示乱码。 iTerm2展示如下: VSCode展示如下: 2...

HelloDeveloper
昨天
7
0
常用物流快递单号查询接口种类及对接方法

目前快递查询接口有两种方式可以对接,一是和顺丰、圆通、中通、天天、韵达、德邦这些快递公司一一对接接口,二是和快递鸟这样第三方集成接口一次性对接多家常用快递。第一种耗费时间长,但是...

程序的小猿
昨天
9
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部