Maven进行项目管理很方便,下面介绍一下学习maven中的笔记。我是在Windows上运行的          有些知识点没有试,只是收集转载,很可能存在错误

1.安装

解压缩之后,配置环境变量MAVEN_HOME 为解压缩路径,在环境变量PATH中添加 %MAVEN_HOME%\bin

打开cmd   输入命令 mvn -v 验证安装是否成功

2.代理

如果连接互联网需要通过代理,那么必须为Maven进行代理设置,否则无法下载依赖。

在{M2_HOME}/conf/settings.xml中添加代理的配置信息

<proxies>
<proxy>
<id>optional</id>
<active>true</active>
<protocol>http</protocol>
<username>proxyuser</</username>
<password>proxypass</password>
<host>proxy.host.net</host>
<port>80</port>
<nonProxyHosts>local.net|some.host.com</nonProxyHosts>
</proxy>
</proxies>

3.本地库

本地库默认保存在个人文件夹下的.m2文件夹中,通过修改{M2_HOME}/conf/settings.xml文件可以更改本地库的位置

<localRepository>D:\maven\repository</localRepository>

在eclipse中则要properties->maven->user setting中更新配置文件的位置,使eclipse能读到正确的配置文件

4.添加外部库

maven有一个默认的中央库,会根据pom.xml中配置的依赖自动连接该库进行下载       http://search.maven.org/

但是当中央库中没有,而在别的库中,我们就需要添加别的库。通过在pom.xml里面的<repositionry>标签来实现

 <repositories>
<repository>
<id>java.net</id>
<url>https://maven.java.net/content/repositories/public/</url>
</repository>
</repositories>

这样就添加了java.net库。

5.依赖

maven一个很重要的功能就是依赖管理。添加依赖的方法如下,在pom.xml中添加

<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>${junit.version}</version>
   </dependency>
</dependencies>
    <dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>${spring.version}</version>
<exclusions>
<exclusion> //不导入spring中的commons_logging包
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
</exclusion>
</exclusions>
</dependency>

这个具体的配置信息可以在  http://search.maven.org/  maven服务器上查看。需要什么添加什么就好

关于dependecy的scope属性

Scope 描述
compile 该范围表明相关依赖是只在工程的类路径下有效。默认取值。
provided 该范围表明相关依赖是由运行时的 JDK 或者 网络服务器提供的。
runtime 该范围表明相关依赖在编译阶段不是必须的,但是在执行阶段是必须的。
test 该范围表明相关依赖只在测试编译阶段和执行阶段。
system 该范围表明你需要提供一个系统路径。(添加本地jar时使用)
import 该范围只在依赖是一个 pom 里定义的依赖时使用。同时,当前工程的POM 文件的部分定义的依赖关系可以取代某特定的 POM
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>1.1.1</version>
<scope>system</scope>
<!--本地jar的路径,相对或者绝对都可以-->
<systemPath>path/to/yourLocalJar.jar</systemPath>
</dependency>

7.创建普通java项目

首先建一个工程文件夹并进入,然后运行命令

mvn archetype:generate -DgroupId={project-packaging} -DartifactId={project-name}-DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false

groupId  项目的包名       artifactId   项目名        archetypeArtifactId  项目类型         interactiveMode 是否开启交互模式(根据提示输入参数)

也可以输入   mvn archetype:generate    然后根据提示逐步设定参数

完成后输入mvn eclipse:eclipse 就可以完成该项目的eclipse工程化

mvn package 就可以完成打包

8.创建web项目

首先建一个工程文件夹并进入,然后运行命令

mvn archetype:generate -DgroupId={project-packaging} -DartifactId={project-name}-DarchetypeArtifactId=maven-archetype-webapp -DinteractiveMode=false

groupId  项目的包名       artifactId   项目名        archetypeArtifactId  项目类型         interactiveMode 是否开启交互模式(根据提示输入参数)

也可以输入   mvn archetype:generate    然后根据提示逐步设定参数

mvn eclipse:eclipse 就可以完成该项目的eclipse工程化

mvn package 就可以完成打包

9.插件

插件 描述
clean 构建之后清理目标文件。删除目标目录。
compiler 编译 Java 源文件。
surefile 运行 JUnit 单元测试。创建测试报告。
jar 从当前工程中构建 JAR 文件。
war 从当前工程中构建 WAR 文件。
javadoc 为工程生成 Javadoc。
antrun 从构建过程的任意一个阶段中运行一个 ant 任务的集合。

10.模板

使用命令mvn archetype:generate 根据提示简历项目时,会有一个选项是选择模板编号。

maven提供了1000多种模板可供选择。我们可以将它输出到txt中来查看各个模板的编号和信息

 mvn archetype:generate > templates.txt

使用上面的命令就可以将模板信息输出到txt文档中供查看

11.快照

公司有个maven私服,我们连接该私服需要进行配置。

<mirrors>
<mirror>
<id>Nexus</id>
<mirrorOf>*</mirrorOf>
<name>Nexus Mirror.</name>
<url>http://192.168.122.164:8081/nexus-2.1/content/groups/public</url>
</mirror>
</mirrors>

我们上传自己的jar时,可以使用如下命令

1). 安装到本地库:
mvn install:install-file -DgroupId=org.apache.hadoop -DartifactId=hbase -Dversion=1.0 -Dpackaging=jar -Dfile=[path to file] 2). 安装到私服
mvn deploy:deploy-file -DgroupId=org.apache.hadoop -DartifactId=hbase -Dversion=1.0 -Dpackaging=jar -Dfile=[path to file] -Durl=[url] -DrepositoryId=[id]

而快照则是我们的工程版本定义为 snapshot  如下所示

<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>data-service</groupId>
<artifactId>data-service</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>jar</packaging>
<name>health</name>
<url>http://maven.apache.org</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
</project>

这样生成的jar上传之后,别的项目引用时 每次都会从库中下载,确保下载的是最新的,避免了重复更改配置文件版本号的问题

Maven应用的更多相关文章

  1. 【分享】标准springMVC+mybatis项目maven搭建最精简教程

    文章由来:公司有个实习同学需要做毕业设计,不会搭建环境,我就代劳了,顺便分享给刚入门的小伙伴,我是自学的JAVA,所以我懂的.... (大图直接观看显示很模糊,请在图片上点击右键然后在新窗口打开看) ...

  2. 理解Maven中的SNAPSHOT版本和正式版本

    Maven中建立的依赖管理方式基本已成为Java语言依赖管理的事实标准,Maven的替代者Gradle也基本沿用了Maven的依赖管理机制.在Maven依赖管理中,唯一标识一个依赖项是由该依赖项的三个 ...

  3. 【微框架】Maven +SpringBoot 集成 阿里大鱼 短信接口详解与Demo

    Maven+springboot+阿里大于短信验证服务 纠结点:Maven库没有sdk,需要解决 Maven打包找不到相关类,需要解决 ps:最近好久没有写点东西了,项目太紧,今天来一篇 一.本文简介 ...

  4. 安装eclipse的maven插件

    我们团队用maven来管理项目需要的库文件,其实以前都没听过maven,第一次接触这个,师兄要我直接去装下这个,开始以为还挺简单的,没想到中间遇到了一些小麻烦,现在把我成功安装maven的过程分享下, ...

  5. MAVEN学习-第一个Maven项目的构建

    MAVEN安装成功之后就可以进行项目的构建和管理了: 为什么要用maven进行项目的构建和管理? 对于初学者来说一个最直接的也是最容易里的优点在于JAR包的管理,相对于以前开发一个项目的时候我们需要用 ...

  6. Maven 代理设置

    在maven的安装目录下 %MAVEN_HOME%/conf/setting.xml 中进行设置 <proxies>    <!-- proxy     | Specificatio ...

  7. spring maven pom.xml设置

    spring pom.xml设置 <?xml version="1.0" encoding="UTF-8"?> <project xmlns= ...

  8. maven依赖查询地址

    http://search.maven.org/#search%7Cga%7C1%7C

  9. maven 中snapshot版本和release版本的区别

    maven中的仓库分为两种,snapshot快照仓库和release发布仓库.snapshot快照仓库用于保存开发过程中的不稳定版本,release正式仓库则是用来保存稳定的发行版本.定义一个组件/模 ...

  10. Maven多模块,Dubbo分布式服务框架,SpringMVC,前后端分离项目,基础搭建,搭建过程出现的问题

    现互联网公司后端架构常用到Spring+SpringMVC+MyBatis,通过Maven来构建.通过学习,我已经掌握了基本的搭建过程,写下基础文章为而后的深入学习奠定基础. 首先说一下这篇文章的主要 ...

随机推荐

  1. 【SAP BO】【DI】DataService 服务无法启动。错误1069:由于登录失败而无法启动服务

    重启BI服务器后,突然发现DataServices服务无法启动,提示: 错误 1069:由于登录失败而无法启动服务. 解决方法: (1)打开控制面板--> 服务 --> 右键点击Data ...

  2. [Cocos2D-x For WP8]Label标签

    Label标签主要会用于在游戏中显示一些文字字符串类型的信息.那么在Cocos2D-x里面主要会有下面的一些创建标签的方式: 1.使用CCLabelTTF类生成系统文字的标签,编程语法如下: CCLa ...

  3. GO语言练习:第二个工程--模拟音乐播放器

    1.代码 2.编译及运行 1.目录结构 1.1) $ tree . ├── mplayer.go └── src ├── mlib │   ├── manager.go │   └── manager ...

  4. .NET易忘备留 ORACLE存储过程调用

    1.Oracle存储过程调用[返回信息,单体或者列表] public IResult FundBuild(string partnerId,string userId, DateTime beginD ...

  5. poi excel导入

    poi.jar包 import java.io.File;import java.io.FileInputStream;import java.io.IOException; import org.a ...

  6. Windows Phone Data Protection

    To encrypt the PIN // Convert the PIN to a byte[]. byte[] PinByte = Encoding.UTF8.GetBytes(TBPin.Tex ...

  7. HTTP Methods: GET v.s POST

    HTTP works as a request-response protocol between a client and server. A web browser may be the clie ...

  8. text-indent:-9999px 字体隐藏问题

    为什么要字体隐藏? 通常为了传达更好的视觉效果,我们常用图片替代掉字体.但是为了html语义化,常常要给内容模块加上一些标题来让页面更有意义,在抛开css裸奔的情况下也能很顺利的汲取到页面信息.为此我 ...

  9. 三种线程不安全现象描述(escaped state以及hidden mutable state)

    hidden mutable state和escaped state是两种线程不安全问题:两者原因不同,前者主要是由于类成员变量中含有其他对象的引用,而这个引用是immutable的:后者是成员方法的 ...

  10. Android 图片轮播(最简单的)

    布局文件 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android ...