深入理解maven及应用--转】的更多相关文章

深入理解maven及应用(一):生命周期和插件 參考官方url:http://maven.apache.org/guides/index.html 一个优秀的构建系统必须足够灵活,应该可以让项目在不同的环境下都能成功构建.maven为了支持构建的灵活性,内置了三大特性,即:属性.profile和资源过滤. 1.maven属性 maven属性分6类:     1.内置属性:如${basedir}表示项目根文件夹,${version}表示项目版本号     2.POM属性:用户能够引用pom文件里相…
作者:亚当-adam 来源:CSDN 原文:https://blog.csdn.net/zhaojianting/article/details/80321488 版权声明:本文为博主原创文章,转载请附上博文链接! -------------------------------- 本博文不会长篇大论的讨论生命周期的概念,而是从各种plugin的实际功能和应用出发,来讨论maven的实际应用,说得通透一点,生命周期(lifecycle)可以理解成由各种plugin按照一定的顺序执行来完成java项…
1.理解“仓库” 首次运行完mvn -version后,会在用户目录下创建一个.m2的目录(比如:C:\Users\当前用户名\.m2\),这个目录是maven的“本地仓库”,仓库是maven中一个很重要的概念. 试想一下,我们会在工作中同时创建很多项目,每个项目可能都会引用一些公用的jar包(.NET中是dll文件),一种作法是每个项目里,都复制一份这些依赖的jar包(或dll文件),这样显然不好,相同的文件在硬盘上保存了多份,太占用空间,而且这些依赖的jar包(或dll文件)的版本也不太好管…
原文出处:http://www.cnblogs.com/holbrook/archive/2012/12/24/2830519.html 好久没进行java方面的开发了,最近又完成了一个java相关的任务,顺便重新体会了 maven 这一利器. 在使用过程中发现以前对maven的理解不够深入,借此机会重新梳理了一下maven的核心概念.相信理解了这些核心概念, 即使长时间不使用,以后再重新上手也会非常容易. 本文以类图的方式,介绍maven核心的12个概念以及相互之间的关系. Table of…
https://leokongwq.github.io/2017/08/24/understanding-maven-snapshot.html 一次针对现有的http服务开发了一个SNAPSHOT版本的调用SDK jar包.QA同学部署到测试环境后,我又更新了一下jar包的内容,此时QA同学再次部署时并没有拉去到最新的jar包,这个就比较奇怪了.记忆中maven不是每次都从私服去检查SNAPSHOT类型的jar包是否有更新吗?怎么对我就不起作用了呢?原来也是一直这么使用的的,换个公司就不行了?…
转载自: http://www.cnblogs.com/holbrook/archive/2012/12/24/2830519.html 本文以类图的方式,介绍maven核心的12个概念以及相互之间的关系. Table of Contents 1 maven管理的目标:工程(Project) 1.1 工程依赖关系 1.2 工程聚合关系 2 maven的核心:生命周期和阶段 3 功能实现:插件和Goal 4 仓库(Repository) 5 小结 1 maven管理的目标:工程(Project)…
一.本地仓库(Local Repository) 本地仓库就是一个本机的目录,这个目录被用来存储我们项目的所有依赖(插件的jar包还有一些其他的文件),简单的说,当你build一个Maven项目的时候,所有的依赖文件都会放在本地仓库里,仓库供所有项目都可以使用 默认情况下,本地仓库在.m2目录,windows下的话就是你的用户名目录下的.m2目录 1.更新本地仓库目录 找到你的MAVEN_HOME目录下的conf/setting.xml文件,更新localRepository节点 <settin…
Maven中建立的依赖管理方式基本已成为Java语言依赖管理的事实标准,Maven的替代者Gradle也基本沿用了Maven的依赖管理机制.在Maven依赖管理中,唯一标识一个依赖项是由该依赖项的三个属性构成的,分别是groupId.artifactId以及version.这三个属性可以唯一确定一个组件(Jar包或者War包). 其实在Nexus仓库中,一个仓库一般分为public(Release)仓和SNAPSHOT仓,前者存放正式版本,后者存放快照版本.如果在项目配置文件中(无论是build…
(一):生命周期和插件 在项目里用了快一年的maven了,最近突然发现maven项目在eclipse中build时非常慢,因为经常用clean install命令来build项目,也没有管那么多,但最近实在受不了乌龟一样的build速度,于是下定决心再看看<maven实战>吧,         对于我来说,maven最主要的作用有两个方面,一个是对jar包的依赖解决功能,自己管理jar包,另一个功能就是项目的构建,打包部署.现在我觉得最重要的还是maven的生命周期和插件机制,下面就来总结一下…
我们在用maven构建java项目时,最常用的打包命令有mvn package.mvn install.deploy,这三个命令都可完成打jar包或war(当然也可以是其它形式的包)的功能,但这三个命令还是有区别的.下面通过分别执行这三个命令的输出结果,来分析各自所执行的maven的生命周期. mvn clean package mvn clean install mvn clean deploy(忽略最后的BUILD FAILURE) 通过三个命令的输出我们可以看出三者的区别在于包函的mave…
我们在用maven构建java项目时,最常用的打包命令有mvn package.mvn install.deploy,这三个命令都可完成打jar包或war(当然也可以是其它形式的包)的功能,但这三个命令还是有区别的.下面通过分别执行这三个命令的输出结果,来分析各自所执行的maven的生命周期. mvn clean package mvn clean install mvn clean deploy(忽略最后的BUILD FAILURE) 通过三个命令的输出我们可以看出三者的区别在于包函的mave…
问题介绍: 在maven项目中,最关键的就是pom.xml这个文件,这个文件是用来导入maven项目依赖的jar包以及一些插件等. 在这个文件中导入jar包使用的标签是<dependency>,而在这个标签下有一个子标签,叫做<scope>,它是有什么用处呢?下面我就来讲讲它的作用. 内容讲解: <scope>这个标签的主要作用有三个: 1.确定导入的jar包的有效区域.这里说的区域分别为: a)主程序区域: b)测试程序区域: 2.是否参与maven项目的打包: 项目…
在项目里用了快一年的maven了,近期突然发现maven项目在eclipse中build时很慢,由于经经常使用clean install命令来build项目,也没有管那么多,但近期实在受不了乌龟一样的build速度,于是下定决心再看看<maven实战>吧,         对于我来说,maven最基本的作用有两个方面,一个是对jar包的依赖解决功能,自己管理jar包.还有一个功能就是项目的构建,打包部署.如今我认为最重要的还是maven的生命周期和插件机制,以下就来总结一下吧. 參考url:h…
MAVEN2的配置文件有两个settings.xml和pom.xml settings.xml:保存的是本地所有项目所共享的全局配置信息,默认在maven安装目录的conf目录下,如果没有安装maven而是用的m2eclipse插件,那么也可以把这个配置文件放在.m2目录下 pom.xml:描述项目的配置文件,放在每个项目的根目录下 settings.xml localRepository:本地仓库位置,默认在.m2/repository/,可以人为更改 offline:离线开关,是否每次构建都…
一个优秀的构建系统必须足够灵活,应该能够让项目在不同的环境下都能成功构建.maven为了支持构建的灵活性,内置了三大特性,即:属性.profile和资源过滤. 1.maven属性 maven属性分6类:     1.内置属性:如${basedir}表示项目根目录,${version}表示项目版本     2.POM属性:用户可以引用pom文件中对应的值.如:          ${basedir} 项目根目录          ${project.build.directory} 构建目录,缺省…
在项目里用了快一年的maven了,最近突然发现maven项目在eclipse中build时非常慢,因为经常用clean install命令来build项目,也没有管那么多,但最近实在受不了乌龟一样的build速度,于是下定决心再看看<maven实战>吧,         对于我来说,maven最主要的作用有两个方面,一个是对jar包的依赖解决功能,自己管理jar包,另一个功能就是项目的构建,打包部署.现在我觉得最重要的还是maven的生命周期和插件机制,下面就来总结一下吧. 参考url:htt…
我就不复制博主文章了,到原文地址看吧.写这个只是为了自己搜索起来方便些: https://blog.csdn.net/zhaojianting/article/details/80321488 https://blog.csdn.net/zhaojianting/article/details/80324533 结论很准确: package命令完成了项目编译.单元测试.打包功能,但没有把打好的可执行jar包(war包或其它形式的包)布署到本地maven仓库和远程maven私服仓库 install…
链接:https://blog.csdn.net/zhaojianting/article/details/80321488…
个人对于 Maven 的理解 Maven 一直都在使用, 但如果说是不是真的懂 Maven, 很难谈得上. 或许什么时候系统地学习一下, 但在那之前, 打算先记下自己目前对于 Maven 的理解, 之后再进行对比, 看有哪些疏漏和错误. Maven 基础 最直观的, Maven 使用 pom.xml 文件来管理项目中所使用的依赖, 这跟 Python 的 requirement.txt.JS 的 package.json 或者是 Ruby 的 Gemfile 都类似. 不过, 其他语言的依赖文件…
转 maven(一) maven到底是个啥玩意~ 我记得在搞懂maven之前看了几次重复的maven的教学视频.不知道是自己悟性太低还是怎么滴,就是搞不清楚,现在弄清楚了,基本上入门了.写该篇博文,就是为了帮助那些和我一样对于maven迷迷糊糊的人.有福了,看完基本上你就会发现原来这么简单. 参考博文:通俗理解maven 该篇文章篇幅很长,大概的思路如下 maven的介绍,初步认识,获取jar包的三个关键属性 --> 介绍仓库(获取的jar包从何而来)-->用命令行管理maven项目(创建ma…
1.前言 Maven 命令看起来简单,一学即会 .其实,Maven 命令底层是插件的执行过程.了解插件和插件目标才有助于深刻的理解 Maven命令. 2.插件与命令的关系 Maven本质上是一个插件框架,它的核心并不执行任何具体的构建任务,所有这些任务都交给插件来完成. Maven 实际上是一个依赖插件执行的框架,每个任务实际上是由插件完成.所以,Maven 命令都是由插件来执行的. 3.Maven 命令的分类 Maven 提供了两种类型的命令.一种必须在项目中运行,视为项目命令:另外一种则不需…
pom.xml与settings.xml pom.xml与setting.xml,可以说是Maven中最重要的两个配置文件,决定了Maven的核心功能,虽然之前的文章零零碎碎有提到过pom.xml和settings.xml里面的内容,但都是大略带过,学习与研究地并不细致,本文的目的就是详细研究下这两个Maven重要的配置文件,从这两个配置文件可以牵出非常多的Maven话题. Maven坐标 首先谈一下为什么要使用Maven坐标. Maven世界拥有数量非常巨大的构件,也就是平时使用的一些jar.…
前提: nexus的相关repository必须设置允许redeploy,参考下图: maven项目: pom.xml中增加以下节点: <distributionManagement> <repository> <id>nexus-3rd</id> <url>http://localhost:8081/nexus/content/repositories/thirdparty/</url> </repository> &l…
“打包“这个词听起来比较土,比较正式的说法应该是”构建项目软件包“,具体说就是将项目中的各种文件,比如源代码.编译生成的字节码.配置文件.文档,按照规范的格式生成归档,最常见的当然就是JAR包和WAR包了,复杂点的例子是Maven官方下载页面的分发包,它有自定义的格式,方便用户直接解压后就在命令行使用.作为一款”打包工具“,Maven自然有义务帮助用户创建各种各样的包,规范的JAR包和WAR包自然不再话下,略微复杂的自定义打包格式也必须支持,本文就介绍一些常用的打包案例以及相关的实现方式,除了前…
由于之前是从C++代码阵营中转到java阵营的(这里可能还会转到scala阵营中).在写工程代码的时候,如果是只是简单的创建java project的话,当然也是可以的.但是,随着项目慢慢扩大,组件越来越多,需要维护的依赖包就非常之多.然而,在这里有一点非常重要——查看源码(特别是针对开源项目).当你针对某个问题需要查看源码的时候,如果你仅仅是创建简单的java project的工程的话,那你想查看依赖包的源码的话,就必须在build path中添加对应依赖包的源码路径才可以查看,并且前提是你已…
0. 前言 Jason Van Zyl,在 Java 十大风云人物排行榜上或许会看到他. 这兄弟是干嘛的? 他就是 Maven 的创始人,人们都尊称他为"Maven 他爸". 毋庸置疑,Jason 也是一个秃顶.James Gosling.Rod Johnson.Gavin King,你们可以告诉我为什么吗? 您曾经是否会遇到这些问题: 我们要开发一个 Java 项目,为了保证编译通过,我们会到处去寻找 jar 包.当编译通过了,在运行的时候,却发现ClassNotFoundExcep…
我们都知道Maven本质上是一个插件框架,它的核心并不执行任何具体的构建任务,所有这些任务都交给插件来完成,例如编译源代码是由maven-compiler-plugin完成的.进一步说,每个任务对应了一个插件目标(goal),每个插件会有一个或者多个目标,例如maven-compiler-plugin的compile目标用来编译位于src/main/java/目录下的主源码,testCompile目标用来编译位于src/test/java/目录下的测试源码. 用户可以通过两种方式调用Maven插…
1,创建Project 先去官方网站下载一个最新版本http://maven.apache.org/download.cgi. 下载后解压,使用之前最好先将maven的bin目录设置到path环境变量里面. maven无非也就是用来build一个project的,直接先上一个例子,在命令行下输入下面的命令: mvn archetype:generate DarchetypeGroupId=org.apache.maven.archetypes -DgroupId=com.mycompany.ap…
参考资料:http://my.oschina.net/zh119893/blog/276090 我们都知道Maven本质上是一个插件框架,它的核心并不执行任何具体的构建任务,所有这些任务都交给插件来完成. 例如编译源代码是由maven-compiler-plugin完成的. 进一步说,每个任务对应了一个插件目标(goal),每个插件会有一个或者多个目标. 例如maven-compiler-plugin的compile目标用来编译位于src/main/java/目录下的主源码,testCompil…
我们都知道Maven本质上是一个插件框架,它的核心并不执行任何具体的构建任务,所有这些任务都交给插件来完成,例如编译源代码是由maven- compiler-plugin完成的.进一步说,每个任务对应了一个插件目标(goal),每个插件会有一个或者多个目标,例如maven- compiler-plugin的compile目标用来编译位于src/main/java/目录下的主源码,testCompile目标用来编译位于src/test/java/目录下的测试源码. 用户可以通过两种方式调用Mave…