maven(项目依赖管理)

Maven,['meɪv(ə)n],项目构建管理工具,用于告诉编译器项目中各文件之间的依赖关系等。

pom.xml 文件指定了项目的依赖关系。

1.repository仓库

Maven的仓库分为本地仓库和远程仓库。
本地仓库:是Maven在我们本机设置的仓库目录,默认目录为 当前用户目录/.m2/repository。
远程仓库:联网时才能用,从这里下载jar。

默认远程仓库因为访问量大,速度慢,所以可以自己临时替换远程仓库位置。
.m2/ 目录下有个settings.xml配置文件,在<mirrors>节点内部增加<mirror>节点就可以了。
一个示例:

<mirror>
      <id>jboss-public-repository-group</id>
      <mirrorOf>*</mirrorOf>
      <name>JBoss Public Repository Group</name>
     <url>http://repository.jboss.org/nexus/content/groups/public</url>
</mirror> 

对eclipse中的maven插件有效。<mirror>配置修改实时生效,不需重启eclipse。

2.mvn项目结构

maven默认的文件存放结构如下:
/项目目录
pom.xml 用于maven的配置文件
/src 源代码目录
/src/main 工程源代码目录
/src/main/java 工程java源代码目录
/src/main/resource 工程的资源目录
/src/test 单元测试目录
/src/test/java
/target 输出目录,所有的输出物都存放在这个目录下
/target/classes
编译之后的class文件
SNAPSHOT:如果一个版本包含字符串"SNAPSHOT",Maven就会在安装或发布这个组件的时候将该符号展开为一个日期和时间值,转换为UTC时间。例 如,"1.0-SNAPSHOT"会在2010年5月5日下午2点10分发布时候变成1.0-20100505-141000-1。

3.maven项目与eclipse项目互转

3.1 eclipse->maven

已有eclipse普通项目转化为maven项目,右击项目名,按照下图3-1选择。

图 3-1 

3.2 maven->eclipse

一个原本的maven项目是没有.classpath与.project这些文件的。所以在用eclipseIDE的时候要创建它们,可以用命令
mvn eclipse:eclipse 来生成这些文件。

问:mvn eclipse:clean 与mvn clean 的区别是什么?

答:前者是清除已有的.classpath与.project这些东西;后者是清除mvn在 target/ 目录下面的一些东西。

4.maven生命周期

从前到后依次是compile、test、package、install、deploy。

4.1 compile

compile任务就是从src/main/java下编译所有的java文件,并把它的输出class文件存放到target/classes中。

本地的jdk是1.8,但目标服务器的环境是jdk1.7,那么就要指定编译的版本,可用下面插件解决:

<plugin>
	<artifactId>maven-compiler-plugin</artifactId>
	<version>3.1</version>
	<configuration>
	<span style="white-space:pre">	</span><source>1.7</source>
		<target>1.7</target>
	</configuration>
</plugin>

4.2 test

略。

4.3 package

打包。可参见插件 文章。

http://blog.csdn.net/chuchus/article/details/47100491

4.4 install

将自己的项目打包进本地仓库中。这样自己的其他项目就可以依赖它了。

常见错误

[ERROR] No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK?

解决方法:Library中的jre变成jdk,下图:

附带源码

可以使用maven-source-plugin插件。

4.5 deploy

用于发布到远程仓库。

时间: 2024-09-21 13:34:40

maven(项目依赖管理)的相关文章

接口-急求!!maven项目依赖问题

问题描述 急求!!maven项目依赖问题 maven项目都是通过pom文件配置其他项目的依赖包来实现调用的,问题是现在要求不用依赖的这种方式,而使用接口的方式来实现调用其他的项目.不知道该怎么弄,急求大神!!! 解决方案 maven项目问题 解决方案二: 你的意思应该是想远程调用吧,可以考虑一些成熟的RPC调用框架,如果想转换风格可以考虑Restful风格. 解决方案三: Webservice也是一种选择.

漫谈依赖管理工具:从Maven,Gradle到Go

为什么要有依赖管理工具? 谈依赖管理之前,我们先谈谈为什么要有依赖管理工具这东西. 我们学了一种编程语言,然后写了个"Hello World",然后宣称自己学了一门语言,这时候确实不需要关心依赖问题. 然而,当你要写一个稍微复杂点的应用,那怕就是留言板这样的,需要读写数据库,就需要依赖数据库驱动,就会遇到依赖管理的问题了. 再进一步,你写了一个库,想共享给别人使用,更需要了解依赖管理的问题. 当然,如果项目足够简单,你可以直接将依赖方的源码放置在自己的项目中,或者将依赖库的二进制文件(

3.将maven项目jar纳入maven仓库,Mave项目依赖另外一个Maven项目的案例

 1 若想让maven项目依赖另外一个maven项目,被依赖的项目要在maven仓库中有相应的jar包,所以要对依赖的项目执行mvninstall命令. 2 新建第二个项目模块HelloFriend目录及约定的目录结构 HelloFriend  --src  -----main  ----------java  ----------resources  -----test  ---------java  ---------resources  --pom.xml 3 在项目HelloFrie

maven3- maven项目依赖冲突,提示是jar重复了

问题描述 maven项目依赖冲突,提示是jar重复了 我的maven结构是这样的:parent(定义jar),parentWeb(最终发不到tomcat上),Cmodule(聊天模块),Dmodule(用户模块),parentWeb依赖于parent.Cmodule.Dmodule,Cmodule依赖于parent,Dmodule依赖于parent,现在我总是出现一下这个问题: Duplicate fragment name: spring_web for jar:file:/d:/Users/

深入实践Spring Boot1.3.1 Maven依赖管理

1.3.1 Maven依赖管理 使用Maven,通过导入Spring Boot的starter模块,可以将许多程序依赖包自动导入工程中.使用Maven的parent POM,还可以更容易地管理依赖的版本和使用默认的配置,工程中的模块也可以很方便地继承它.例如,使用1.2.1节创建的工程,修改pom.xml文件,使用如代码清单1-1所示的简单Maven配置,基本上就能为一个使用Spring Boot开发框架的Web项目开发提供所需的相关依赖. 代码清单1-1 Spring Boot Web基本依赖

Maven使用笔记(二)Eclipse中maven项目添加依赖

1.在Eclipse中创建Eclipse项目后如何添加jar包? 点击pom.xml文件.我们可以看到下面有7个标签. 各个标签的含义如下: Overview:显示maven项目的一些基本信息Dependencies:添加jar包的页面Plugins:添加maven插件的页面.比如tomcat-maven-plugin等Dependency Hierarchy:用于显示jar包的依赖关系.没事的时候可以看看jar包的依赖关系Effective POM:显示maven的编译路径,plugin之类的

maven 项目中pom依赖到其他pom【A】,如何递归下载这个pom【A】中的依赖包?

问题描述 maven 项目中pom依赖到其他pom[A],如何递归下载这个pom[A]中的依赖包? 用maven管理的项目,其中引入了 org.apache.hadoop hadoop-yarn ${hadoop.version}pom 但是这个GAV定位到的是一个POM文件,此文件中包括了一堆modules 如下 hadoop-yarn-apihadoop-yarn-commonhadoop-yarn-serverhadoop-yarn-applicationshadoop-yarn-site

4.Maven概念模型,maven的生命周期,Maven坐标,依赖管理(依赖范围,依赖声明),仓库管理,私服概念

 1 maven概念模型 2 maven的生命周期,项目构建过程 Maven生命周期就是为了对所有的构建过程进行抽象和统一 包括项目清理,初始化,编译,打包,测试,部署等几乎所有构建步骤   Maven有"三套"相互独立的生命周期,而且相互独立,这三套生命周期分别是: Maven三大生命周期 clean:清理项目的 在进行真正的构建之前进行一些清理工作. default:构建项目的 构建的核心部分,编译,测试,打包,部署等等. site:生成项目站点的 生成项目报告,站点,发布站点

maven搭建多模块项目和管理

在eclipse下构建maven项目,该项目由多个子模块组成. 1.创建一个父项目 NEW -->project-->maven-->maven Project,点击下一步,进入new maven Project的Select project name and location界面 ,什么也不做,直接下一步到Select an Archetype界面. 在这个界面中选择maven-Archetype-site-simple,然后选择下一步,进入选择Enter a group id for