Maven应用
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应用的更多相关文章
- 【分享】标准springMVC+mybatis项目maven搭建最精简教程
文章由来:公司有个实习同学需要做毕业设计,不会搭建环境,我就代劳了,顺便分享给刚入门的小伙伴,我是自学的JAVA,所以我懂的.... (大图直接观看显示很模糊,请在图片上点击右键然后在新窗口打开看) ...
- 理解Maven中的SNAPSHOT版本和正式版本
Maven中建立的依赖管理方式基本已成为Java语言依赖管理的事实标准,Maven的替代者Gradle也基本沿用了Maven的依赖管理机制.在Maven依赖管理中,唯一标识一个依赖项是由该依赖项的三个 ...
- 【微框架】Maven +SpringBoot 集成 阿里大鱼 短信接口详解与Demo
Maven+springboot+阿里大于短信验证服务 纠结点:Maven库没有sdk,需要解决 Maven打包找不到相关类,需要解决 ps:最近好久没有写点东西了,项目太紧,今天来一篇 一.本文简介 ...
- 安装eclipse的maven插件
我们团队用maven来管理项目需要的库文件,其实以前都没听过maven,第一次接触这个,师兄要我直接去装下这个,开始以为还挺简单的,没想到中间遇到了一些小麻烦,现在把我成功安装maven的过程分享下, ...
- MAVEN学习-第一个Maven项目的构建
MAVEN安装成功之后就可以进行项目的构建和管理了: 为什么要用maven进行项目的构建和管理? 对于初学者来说一个最直接的也是最容易里的优点在于JAR包的管理,相对于以前开发一个项目的时候我们需要用 ...
- Maven 代理设置
在maven的安装目录下 %MAVEN_HOME%/conf/setting.xml 中进行设置 <proxies> <!-- proxy | Specificatio ...
- spring maven pom.xml设置
spring pom.xml设置 <?xml version="1.0" encoding="UTF-8"?> <project xmlns= ...
- maven依赖查询地址
http://search.maven.org/#search%7Cga%7C1%7C
- maven 中snapshot版本和release版本的区别
maven中的仓库分为两种,snapshot快照仓库和release发布仓库.snapshot快照仓库用于保存开发过程中的不稳定版本,release正式仓库则是用来保存稳定的发行版本.定义一个组件/模 ...
- Maven多模块,Dubbo分布式服务框架,SpringMVC,前后端分离项目,基础搭建,搭建过程出现的问题
现互联网公司后端架构常用到Spring+SpringMVC+MyBatis,通过Maven来构建.通过学习,我已经掌握了基本的搭建过程,写下基础文章为而后的深入学习奠定基础. 首先说一下这篇文章的主要 ...
随机推荐
- BZOJ1950 : [Ceoi2006]Link
显然在最优解中,添加的边都是从$1$出发的. 这个图是一个环套树的结构,对于树的部分,显然叶子节点必须加边. 因此可以自底向上确定树中哪些节点需要加边,同时得到$1$到环上每个点的距离. 对于每个环, ...
- Android 摇一摇 之 传感器片
要监视原始的传感器数据,你需要实现两个通过SensorEventListener接口暴露的回调方法:onAccuracyChanged()和onSensorChanged(). 传感器数据的速度值,这 ...
- UIView 的属性opaque详解
该属性用法决定与该消息的接受者是否让其视图透明. 该属性的用处在于:给绘图系统提供一个性能优化开关. 当该值设计为YES,那么绘图系统会把它当作不透明看待,那么在执行绘图的时候会优化绘图一些操作,并且 ...
- 移动开发流量省起来之Zepto
一张图说明Zepto.js的优势: jquery 1.x最新版284KB,压缩后94KB:jquery2.x最新版247KB,压缩后84KB:Zepto最新版54KB,压缩后9KB!!! 然后 ...
- Linux下bash: scp: command not found问题 或者装ssh包时报错 Requires: libedit.so.0()(64bit)
一.用scp命令从物理主机向CentOS 6.1虚拟机传送文件,提示以下错误:bash: scp: command not found到CentOS 6.1虚拟机查看也缺少scp命令.该虚拟机 ...
- 【JavaService】部署Java jar为Windows后台服务
将Java jar文件部署为Windows后台服务有多种方法:Service Installer.Java service Wrapper.JavaService.exe等等.这里介绍下使用JavaS ...
- 纪念逝去的岁月——C/C++选择排序
选择排序 代码 #include <stdio.h> void printList(int iList[], int iLen) { ; ; i < iLen; i++) { pri ...
- 转:DataGridView列的宽度、行的高度自动调整
注意:DataGridView控件是从.NET Framework 2.0版本开始追加的. 介绍一下DataGridView列的宽度和行的高度,根据单元格或Header的内容(一般是内容全部被表示)自 ...
- (转)FTP操作类,从FTP下载文件
using System; using System.Collections.Generic; using System.Text; using System.IO; using System.Net ...
- Getting the Device GUID
Sometime you may want to uniquely identify a Windows Phone, such as when you are implementing push n ...