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来构建.通过学习,我已经掌握了基本的搭建过程,写下基础文章为而后的深入学习奠定基础. 首先说一下这篇文章的主要 ...
随机推荐
- unity awake start 的区别
void Awake (){ } //初始化函数,在游戏开始时系统自动调用.一般用来创建变量之类的东西. void Start(){ } //初始化函数,在所有Awake函数运行完之后(一般是这样,但 ...
- PHP处理超时方法
一.在php.ini里面设置 max_execution_time = 1800; 二.通过PHP的ini_set 函数设置 ini_set("max_execution_time" ...
- Mysql如何修改unique key
link:http://www.netingcn.com/mysql-modifyunique-key.html mysql可以使用unique key来确保数据的准确性,unique key可以是一 ...
- 如何终止java线程
http://blog.csdn.net/anhuidelinger/article/details/11746365 终止线程的三种方法 有三种方法可以使终止线程. 1. 使用退出标志,使线程正常 ...
- Android: Service中创建窗口显示
WindowManager.LayoutParams: int TYPE_SYSTEM_ALERT Window type: system window, such as low power ale ...
- ACM:HDU 2199 Can you solve this equation? 解题报告 -二分、三分
Can you solve this equation? Time Limit: / MS (Java/Others) Memory Limit: / K (Java/Others) Total Su ...
- 【BZOJ】2659: [Beijing wc2012]算不出的算式
题意 给两个奇质数\(p, q(p, q < 2^{31})\),求\(\sum_{k=1}^{\frac{p-1}{2}} \left \lfloor \frac{kq}{p} \right ...
- js小效果-轮播图
<!DOCTYPE html><html><head lang="en"> <meta charset="UTF-8" ...
- minicom使用
http://blog.chinaunix.net/uid-9525959-id-2001815.html 创建log文件 : minicom -C my_capturefile
- Flash与JS之间相互调用以及参数传递
[AS3]ExternalInterface.call传多个参数的写法代码示例 import flash.text.TextField; ; ; var result:uint = ExternalI ...