java依赖管理maven和gradle中,dependency和plugin的区别是?
 <dependency>
        <groupId>xerces</groupId>
        <artifactId>xercesImpl</artifactId>
        <version>2.9.1</version>
    </dependency>
<plugin>    
                <groupId>org.apache.maven.plugins</groupId>    
                <artifactId>maven-compiler-plugin</artifactId>    
                <configuration>    
                    <source>1.8</source>    
                    <target>1.8</target>    
                </configuration>    
            </plugin>  

我一直搞不清楚这俩有啥区别,尤其是plugin,谁给我讲讲,谢谢了

5个回答

直白点来说:
A. dependency引入的东西是你代码编译/运行时所需要的东西,项目打包后这些东西基本都在。
如:JSON工具包GSON(com.google.code.gson),不仅开发时要用,项目运行时也要用,就需要打包进项目中;
而像 javax.servlet-api 这种由容器实现的接口,运行时调用的是容器的具体实现,开发时它的引入范围应该是编译(<scope>provided</scope>),不会被打包进项目。

B. plugin引入的东西,如它的字面意思一样,是插件,作为开发/编译/打包时的一种辅助工具,一般不会打包进项目中。
如:使用 maven-source-plugin 插件将API包的源码一起打包,方便发布至Maven仓库,而这个插件不会在打包后的项目中出现。

插件是一种工具,例如compile插件是用来编译代码的工具,mybatis插件是用来自动生成数据库dao和mapper的工具。而依赖则是项目工程在编译过程中需要依赖的二方及三方包。在你的工程中可以不需要mybatis插件,自己去实现sql的crud,但如果工程里需要三房包,则必须要用dependency引入。

很明显的一点就是插件是属于可插拔类型的,你可以直接在插件里面的属性里填上你需要的属性值,插件本身就帮你完成了,而dependency只是一个jar,具体的实现什么的需要你自己写代码去处理

很明显的一点就是插件是属于可插拔类型的,你可以直接在插件里面的属性里填上你需要的属性值,插件本身就帮你完成了,而dependency只是一个jar,具体的实现什么的需要你自己写代码去处理

Gradle的安装非常方便,下载ZIP包,解压到本地目录,设置 GRADLE_HOME 环境变量并将 GRADLE_HOME/bin 加到 PATH 环境变量中,安装就完成了。用户可以运行gradle -v命令验证安装,这些初始的步骤和Maven没什么两样。Gradle目前的版本是1.0-milestone-1,根据其Wiki上的Roadmap,在1.0正式版发布之前,还至少会有3个里程碑版本,而1.0的发布日期最快也不会早于6月份。而正是这样一个看起来似乎还不怎么成熟的项目,却有着让很多成熟项目都汗颜的文档,其包括了安装指南、基本教程、以及一份近300页的全面用户指南。这对于用户来说是非常友好的,同时也说明了Gradle的开发者对这个项目非常有信心,要知道编写并维护文档可不是件轻松的工作,对于Gradle这样未来仍可能发生很大变动的项目来说尤为如此。

类似于Maven的pom.xml文件,每个Gradle项目都需要有一个对应的build.gradle文件,该文件定义一些任务(task)来完成构建工作,当然,每个任务是可配置的,任务之间也可以依赖,用户亦能配置缺省任务,就像这样:

defaultTasks 'taskB'

task taskA << {
println "i'm task A"
}

task taskB << {
println "i'm task B, and I depend on " + taskA.name
}

taskB.dependsOn taskA
运行命令$ gradle -q之后(参数q让Gradle不要打印错误之外的日志),就能看到如下的预期输出:

i'm task A
i'm task B, and I depend on taskA
这不是和Ant如出一辙么?的确是这样,这种“任务”的概念与用法与Ant及其相似。Ant任务是Gradle世界的第一公民,Gradle对Ant做了很好的集成。除此之外,由于Gradle使用的Grovvy脚本较XML更为灵活,因此,即使我自己不是Ant用户,我也仍然觉得Ant用户会喜欢上Gradle。

依赖管理和集成Maven仓库
我们知道依赖管理、仓库、约定优于配置等概念是Maven的核心内容,抛开其实现是否最优不谈,概念本身没什么问题,并且已经被广泛学习和接受。那Gradle实现了这些优秀概念了么?答案是肯定的。

先看依赖管理,我有一个简单的项目依赖于一些第三方类库包括SpringFramework、JUnit、Kaptcha等等。原来的Maven POM配置大概是这样的(篇幅关系,省略了部分父POM配置):

<properties>
    <kaptcha.version>2.3</kaptcha.version>
</properties>

<dependencies>
    <dependency>
        <groupId>com.google.code.kaptcha</groupId>
        <artifactId>kaptcha</artifactId>
        <version>${kaptcha.version}</version>
        <classifier>jdk15</classifier>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-core</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-beans</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context</artifactId>
    </dependency>
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
    </dependency>
</dependencies>

然后我将其转换成Gradle脚本,结果是惊人的:

dependencies {
compile('org.springframework:spring-core:2.5.6')
compile('org.springframework:spring-beans:2.5.6')
compile('org.springframework:spring-context:2.5.6')
compile('com.google.code.kaptcha:kaptcha:2.3:jdk15')
testCompile('junit:junit:4.7')
}
注意配置从原来的28行缩减至7行!这还不算我省略的一些父POM配置。依赖的groupId、artifactId、 version,scope甚至是classfier,一点都不少。较之于Maven或者Ant的XML配置脚本,Gradle使用的Grovvy脚本杀伤力太大了,爱美之心,人皆有之,相比于七旬老妇松松垮垮的皱纹,大家肯定都喜欢少女紧致的脸蛋,XML就是那老妇的皱纹。

关于Gradle的依赖管理起初我有一点担心,就是它是否有传递性依赖的机制呢?经过文档阅读和实际试验后,这个疑虑打消了,Gradle能够解析现有的Maven POM或者Ivy的XML配置,从而得到传递性依赖的信息,并且引入到当前项目中,这实在是一个聪明的做法。在此基础上,它也支持排除传递性依赖或者干脆关闭传递性依赖,其中第二点是Maven所不具备的特性。

自动化依赖管理的基石是仓库,Maven中央仓库已经成为了Java开发者不可或缺的资源,Gradle既然有依赖管理,那必然也得用到仓库,这当然也包括了Maven中央仓库,就像这样:

repositories {
mavenLocal()
mavenCentral()
mavenRepo urls: "http://repository.sonatype.org/content/groups/forge/"
}
这段代码几乎不用解释,就是在Gradle中配置使用Maven本地仓库、中央仓库、以及自定义地址仓库。在我实际构建项目的时候,能看到终端打印的下载信息,下载后的文件被存储在USER_HOME/.gradle/cache/ 目录下供项目使用,这种实现的方法与Maven又是及其类似了,可以说Gradle不仅最大限度的继承Maven的很多理念,仓库资源也是直接拿来用。

Gradle项目使用Maven项目生成的资源已经不是个问题了,接着需要反过来考虑,Maven用户是否能够使用 Gradle生成的资源呢?或者更简单点问,Gradle项目生成的构件是否可以发布到Maven仓库中供人使用呢?这一点非常重要,因为如果做不到这一点,你可能就会丢失大量的用户。幸运的是Gradle再次给出了令人满意的答案。使用Gradle的Maven Plugin,用户就可以轻松地将项目构件上传到Maven仓库中:

apply plugin: 'maven'
...
uploadArchives {
repositories.mavenDeployer {
repository(url: "http://localhost:8088/nexus/content/repositories/snapshots/") {
authentication(userName: "admin", password: "admin123")
pom.groupId = "com.juvenxu"
pom.artifactId = "account-captcha"
}
}
}
在上传的过程中,Gradle能够基于build.gradle生成对应的Maven POM文件,用户可以自行配置POM信息,比如这里的groupId和artifactId,而诸如依赖配置这样的内容,Gradle是会自动帮你进行转换的。由于Maven项目之间依赖交互的直接途径就是仓库,而Gradle既能够使用Maven仓库,也能以Maven的格式将自己的内容发布到仓库中,因此从技术角度来说,即使在一个基于Maven的大环境中,局部使用Gradle也几乎不会是一个问题。

约定优于配置
如同Ant一般,Gradle给了用户足够的自由去定义自己的任务,不过同时Gradle也提供了类似Maven的约定由于配置方式,这是通过Gradle的Java Plugin实现的,从文档上看,Gradle是推荐这种方式的。Java Plugin定义了与Maven完全一致的项目布局:

src/main/java

src/main/resources

src/test/java

src/test/resources

区别在于,使用Groovy自定义项目布局更加的方便:

sourceSets {
main {
java {
srcDir 'src/java'
}
resources {
srcDir 'src/resources'
}
}
}
Gradle Java Plugin也定义了构建生命周期,包括编译主代码、处理资源、编译测试代码、执行测试、上传归档等等任务:

Figure 1. Gradle的构建生命周期

相对于Maven完全线性的生命周期,Gradle的构建生命周期略微复杂,不过也更为灵活,例如jar这个任务是用来打包的,它不像Maven那样依赖于执行测试的test任务,类似的,从图中可以看到,一个最终的build任务也没有依赖于uploadArchives任务。这个生命周期并没有将用户限制得很死,举个例子,我希望每次build都发布 SNAPSHOT版本到Maven仓库中,而且我只想使用最简单的$ gradle clean build命令,那只需要添加一行任务依赖配置即可:

build.dependsOn 'uploadArchives'
由于Gradle完全是基于灵活的任务模型,因此很多事情包括覆盖现有任务,跳过任务都非常易于实现。而这些事情,在Maven的世界中,实现起来就比较的麻烦,或者说Maven压根就不希望用户这么做。

小结
一番体验下来,Gradle给我最大的感觉是两点。其一是简洁,基于Groovy的紧凑脚本实在让人爱不释手,在表述意图方面也没有什么不清晰的地方。其二是灵活,各种在Maven中难以下手的事情,在Gradle就是小菜一碟,比如修改现有的构建生命周期,几行配置就完成了,同样的事情,在Maven中你必须编写一个插件,那对于一个刚入门的用户来说,没个一两天几乎是不可能完成的任务。

不过即使如此,Gradle在未来能否取代Maven,在我看来也还是个未知数。它的一大障碍就是Grovvy,几乎所有 Java开发者都熟悉XML,可又有几个人了解Groovy呢?学习成本这道坎是很难跨越的,很多人抵制Maven就是因为学起来不容易,你现在让因为一个构建工具学习一门新语言(即使这门语言和Java非常接近),那得到冷淡的回复几乎是必然的事情。Gradle的另外一个问题就是它太灵活了,虽然它支持约定优于配置,不过从本文你也看到了,破坏约定是多么容易的事情。人都喜欢自由,爱自定义,觉得自己的需求是多么的特别,可事实上,从Maven的流行来看,几乎95%以上的情况你不需要自行扩展,如果你这么做了,只会让构建变得难以理解。从这个角度来看,自由是把双刃剑,Gradle给了你足够的自由,约定优于配置只是它的一个选项而已,这初看起来很诱人,却也可能使其重蹈Ant的覆辙。Maven在Ant的基础上引入了依赖管理、仓库以及约定优于配置等概念,是一个很大的进步,不过在我现在看来,Gradle并没有引入新的概念,给我感觉它是一个结合Ant和Maven理念的优秀实现。

如果你了解Groovy,也理解Maven的约定优于配置,那试试Gradle倒也不错,尤其是它几乎能和现有的Maven系统无缝集成,而且你也能享受到简洁带来的极大乐趣。其实说到简洁,也许在不久的将来Maven用户也能直接享受到,Polyglot Maven在这方面已经做了不少工作。本文完全基于Maven的视角介绍Gradle这一构建工具的新秀,不过限于篇幅原因,无法深入Gradle的方方面面,例如Gradle也支持多模块构建,它提供了GUI操作界面,支持Grovvy(理所当然)和Scala项目等等。有兴趣的读者可以自行进一步了解。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
Gradle依赖管理
1、声明依赖依赖属性最普遍的依赖称为外部依赖,这些依赖存放在外部仓库中。类似Maven,一个外部依赖可以由以下属性指定: group属性指定依赖的分组(在Maven中,就是groupId)。 name属性指定依赖的名称(在Maven中,就是artifactId)。 version属性指定外部依赖的版本(在Maven中,就是version)。 classifier: 有时候需要另外一个属性来进一步的说
Gradle 依赖管理
Gradle 管理好依赖的方式
Maven —— 依赖管理
Maven提供的dependencyManagement元素既能让子模块集成到父模块的依赖配置,又能保证子模块依赖使用的灵活性。在dependencyManagement元素下的依赖声明不会引入实际的依赖,不过他能够约束dependencies下的依赖使用。 例如 &lt;project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi=...
Maven 依赖管理
Maven 一个核心的特性就是依赖管理。当我们处理多模块的项目(包含成百上千个模块或者子项目),模块间的依赖关系就变得非常复杂,管理也变得很困难。针对此种情形,Maven 提供了一种高度控制的方法。 可传递性依赖发现 一种相当常见的情况,比如说 A 依赖于其他库 B。如果,另外一个项目 C 想要使用 A ,那么 C 项目也需要使用库 B。 Maven 可以避免去搜索所有所需库的需求。Mave...
maven plugin maven plugin
maven plugin maven plugin scm 项目管理 构建工具 antmaven plugin maven plugin scm 项目管理 构建工具 ant
头文件中 ""与<>区别是?
#include "stdafx.h"rn#include rn#include rn头文件中 ""与<>区别是?
Maven依赖管理
-
maven依赖管理
1、依赖的引入  使用 dependency 标签指定被依赖 jar 包的坐标: &lt;dependency&gt; &lt;groupId&gt;com.atguigu.maven&lt;/groupId&gt; &lt;artifactId&gt;Hello&lt;/artifactId&gt; &lt;version&gt;0.0.1-SNAPSHOT&lt;/ve...
maven的依赖管理
<p style="font-size:14px;color:#262626;">rn 课程版本:maven零基础入门到进阶是2019年6月全新录制,采用官方3.5.4稳定版本,分为5章27集rn</p>rn<p style="font-size:14px;color:#262626;">rn 核心内容:rn</p>rn<p style="font-size:14px;color:#262626;">rn 1)从零基础讲解到高级实战再讲到进阶rn</p>rn<p style="font-size:14px;color:#262626;">rn 2)<span>详细讲解maven的仓库,pom,基本命令,插件,私服,SNAPSHOT,依赖管理等核心知识</span> rn</p>rn<p style="font-size:14px;color:#262626;">rn 3)深入maven的nexus私服搭建,搭建属于自己的服务器&nbsp;rn</p>rn<p style="font-size:14px;color:#262626;">rn 4)深入讲解maven的依赖管理,解决包冲突等疑难杂症rn</p>rn<p style="font-size:14px;color:#262626;">rn <br />rn</p>
maven 学习---Maven依赖管理
其中一个Maven的核心特征是依赖管理。管理依赖关系变得困难的任务一旦我们处理多模块项目(包含数百个模块/子项目)。 Maven提供了一个高程度的控制来管理这样的场景。 传递依赖发现 这是很通常情况下,当一个库说A就依赖于其他库说B的情况下,另一个项目Ç想用A,则该项目需要使用库中B。 在Maven帮助下以避免这样的要求来发现所有需要的库。 Maven通过读取依赖项项目文件(pom.xml中...
【maven】--依赖管理
其中一个Maven的核心特征是依赖管理。管理依赖关系变得困难的任务一旦我们处理多个模块项目(包含数百个模块/子项目)。Maven提供了一个高程度的控制来管理这样的场景。 传递依赖发现 这是很通常情况下,当一个库说甲就依赖于其他库说乙的情况下,另一个项目Ç想用A,则该项目需要使用库中B. Maven通过读取依赖项目文件(pom.xml中),找出它们的依赖等。 我们只需要在每个项目中POM定义
(十)Maven依赖详解
1.何为依赖? 比如你是个男的,你要生孩子,呸呸呸...男的怎么生孩子,所以你得依赖你老婆,不过也不一定咯,你也可以依赖其她妹子。 我们在平时的项目开发中也是同理,你需要依赖一些东西才能实现相应的功能,但相应的功能或许也可以依赖其它的东西实现,比如数据库操作吧,你可以依赖hibernate,但你也可以通过mybatis来做。 这就是所谓的依赖关系咯。 以前我们需要手动的去找hibernat...
翻译:Gradle之依赖管理
  原文地址 http://www.gradle.org/docs/current/userguide/artifact_dependencies_tutorial.html   8.1. What is dependency management?何谓?为何? 依赖管理大致有两块:首先Gradle需要找到你工程需要的东西,这些东西就是所谓的“依赖”。另外G...
Maven的依赖管理
Maven的其中一个核心特征是依赖管理。管理依赖关系变得困难的任务一旦我们处理多模块项目(包含数百个模块/子项目)。 Maven提供了一个高程度的控制来管理这样的场景。 传递依赖发现 这是很通常情况下,当一个库说A就依赖于其他库说B的情况下,另一个项目Ç想用A,则该项目需要使用库中B。 在Maven帮助下以避免这样的要求来发现所有需要的库。 Maven通过读取依赖项项目文件(po
Maven - 依赖管理
版权所有,未经授权,禁止转载 章节Maven – 简介 Maven – 工作原理 Maven – Repository(存储库) Maven – pom.xml 文件 Maven – 依赖管理 Maven – 构建生命周期、阶段、目标 Maven – profile Maven – 插件 Maven – web 实例 Maven – Eclipse例子 前面简单提到过依赖管理,本章将详细介绍...
Gradle依赖管理 —— 仓库
在编写build.gradle脚本的时候,依赖管理往往涉及到这几个方面: 从哪个仓库拿Artifacts 这些Artifacts如何参与到compile, runtime, testCompile阶段 发布Publish到哪个仓库中,供其他人使用 基于以上理解,会有三个部分的脚本要编写: repositories dependencies publish
Java构建工具:如何用Maven,Gradle和Ant+Ivy进行依赖管理
原文来自:https://zeroturnaround.com/rebellabs/java-build-tools-how-dependency-management-works-with-maven-gradle-and-ant-ivy/ 编译的时候可以运行,运行时出问题 在当今java项目自动化构建的场景当中,依赖管理已经成为了项目构建自动化工具中的一个主要部分,但是在过去并总是这样...
Gradle统一依赖管理
目的:避免在依赖包出新版本时,需要对每个module中的build.gradle文件都进行修改(如appcompat-v7包),使用这种方式即只需一次修改。方法一 在项目的根目录创建一个gradle配置文件config.gradle,格式如下(内容根据需要进行修改): 项目中所有的依赖只要在这个文件中统一做一次修改即可。 ext { android_support_version
Gradle——依赖管理和多项目构建
依赖管理这可能是没有必要专门写一篇的,毕竟看了下课程也太短了。 但是无所谓了,就记一下好了。 为什么要进行依赖管理?主要因为我们不想重复造轮子,但是在实际构建项目的过程中又不可避免地要使用外部类库以重用其现有功能。自动化的依赖管理可以明确依赖的版本,可以解决因传递性依赖而带来的版本冲突问题。工件坐标所谓工件,我们可以简单将其理解为一个外部依赖jar包,而坐标则是它的三个属性:group、name
Gradle学习笔记 依赖管理
定义依赖下面我们在build.gradle中添加如下一段。apply属于插件的部分,我们到后面再说。现在先来看一下Gradle中的依赖管理,有两个部分,repositories和dependencies。下面来逐一说明。apply plugin: 'java'repositories { mavenCentral() }dependencies { compile group: 'o
gradle的使用,依赖管理
引用依赖 对Gradle不是很亲切的朋友可以先认识以下Gradle Gradle基础–认识Gradle1. 什么是依赖管理依赖管理可以分为两部分:一是依赖,即项目构建或运行时所需要的一些文件;二是发布,即构建完成后上传到某个地方。1.1 依赖大部分的项目都需要第三方库类或项目文件,这些文件就是项目的依赖了。比如JDBC的jar包,junit的jar包等等。Gradle需要你告诉它工程的依赖是什么
Gradle项目依赖管理
作者:黄少存,叩丁狼高级讲师。本文为原创文章,转载请注明出处。       上一篇咱们讲解了 Gradle 构建项目的生命周期,这一篇咱们来看下 Gradle 的另一个重要的知识点,就是依赖管理,那为什么需要依赖管理呢? 依赖管理 几乎所有基于 JVM 的软件项目都需要依赖外部的类库来重用现有的功能代码.自动化依赖管理可以明确依赖的版本,能解决传递性依赖带来的版本冲突问题. 而Gradle ...
java的path和classpath的区别是?
有点疑惑,呵呵rn了解的清说一下,谢谢先
Java依赖管理-eclipse中使用maven
先集成maven到eclipse; ①假设本地已经安装好; ②环境变量配好; ③下面: ④继续     一、创建父工程 1、Packaging:     jar:Java项目     war:web项目     pom:父级工程 父级工程本身不写代码,有一个pom文件,集中配置每个子工程的依赖坐标;   二、建立子模块 选择Maven Module,设置继承父...
maven中依赖管理的详细解说
依赖基本概念 当A jar包需要用到B jar包中的类时,我们就说A对B有依赖。例如:commons-fileupload-1.3.jar依赖于commons-io-2.0.1.jar。 通过第二个Maven工程我们已经看到,当前工程会到本地仓库中根据坐标查找它所依赖的jar包。 配置的基本形式是使用dependency标签指定目标jar包的坐标。例如:
Web项目中引入maven依赖管理
本人亲测有效 先新建一个maven project 修改.project文件:将以下maven工程下.project代码拷贝到web工程根路径下的 .project 文件中的 标签下(如果代码存 在,则无须拷贝)<buildCommand> <name>org.maven.ide.eclipse.maven2Builder</name> <arguments></argume
maven教程(四):maven依赖管理
在这xml文件中添加Maven所依赖的Jar的名称,也就是添加< dependency >< / dependency >节点。例如: 1、添加大家常用的Junit测试 Jar包<dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <s
Maven学习笔记(四)——Maven的依赖管理
依赖范围依赖范围scope用来控制依赖和编译,测试,运行的classpath的关系。主要的是三种。依赖关系如下: 1.compile:默认编译依赖范围。对于编译,测试,运行三种classpath都有效; 2.test:测试依赖范围。只对于测试classpath有效 3.provided:已提供依赖范围。对于编译,测试的classpath都有效,但对于运行无效。 4.runtime:运行时提供
maven第二节-maven基础-依赖管理
 1.maven常用命令mvn archetype:create :创建 Maven 项目mvn compile :编译源代码mvn test-compile :编译测试代码mvn test : 运行应用程序中的单元测试mvn site : 生成项目相关信息的网站mvn clean :清除目标目录中的生成结果mvn package : 依据项目生成 jar 文件或者打zip包mvn insta...
Gradle Plugin 和 Gradle的版本的需求
Gradle Plugin 和 Gradle的版本的需求
Maven系列(四)maven的依赖管理
打开建立好的maven项目的pom.xml文件  选择 pom.xml视图  可以看到pom文件中的junit的版本为3.8.1,项目依赖的版本也就是3.8.1,下面试着更改pom中 &amp;lt;version&amp;gt;3.8.1&amp;lt;/version&amp;gt;更改为4.10保存   maven自动把依赖更换了,我们只需要配置几句xml 是不是很方便呢?   1、所有的依赖都是通过坐标来...
Gradle学习(二十五)——依赖管理术语
依赖管理有大量的术语,为了方便理解整个依赖管理的过程,我们先要理解一下相关的术语 配置 配置是一组实现特殊目的的依赖项集合:比如implementation配置表示编译项目的一组依赖集合。配置可以访问底层的已经解析的模块和他们的构件。 依赖 依赖是指向另一个需要构建,测试和运行的软件的指针。 依赖约束 依赖约束定义了模块可以正常解析所需要的一些约束条件,比如依赖约束可以缩小...
java maven gradle 3.0.1
java maven gradle 3.0.1, 国内不好下载的资源,开发android 必备哦。
Maven依赖管理总结
前言 Maven作为当下最流行的项目管理工具,其中核心功能就是依赖管理。本文主要总结Maven依赖管理中依赖范围和依赖冲突的解决。 依赖范围 依赖是maven项目引用的资源架包,依赖范围就是这些资源架包在maven项目中的作用范围,反过来说,maven项目通过依赖范围来控制何时引用资源架包。之前有介绍maven的默认生命周期,(compile,test,package,install,deploy...
Maven(3) -- 依赖管理
先挖个坑,以后慢慢填。 Maven依赖主要就包括这几个方面: 依赖 依赖范围 compile、test、provided、runtime 依赖传递 &amp;lt;dependencies&amp;gt; &amp;lt;dependency&amp;gt; &amp;lt;groupId&amp;gt;&amp;lt;/groupId&amp;gt; &amp;lt;artifactId&amp;gt;&amp;lt;/arti...
maven依赖机制及依赖管理
maven依赖机制及依赖管理 依赖性传递: 依赖调解: 当项目中出现多个版本构件依赖的情形,依赖调解决定最终应该使用哪个版本。当然,你也可以在项目POM文件中显式指定使用哪个版本。从Maven 2.0.9开始,POM中依赖声明的顺序决定了哪个版本会被使用,也叫作”第一声明原则”。 “短路径优先”意味着项目依赖关系树中路径最短的版本会被使用。例如,假设A、B、C之间的依赖关系是A-&amp;...
maven多模块项目依赖管理
项目结构图 Parent `------ childA(BusinessLayer) `--- pom.xml`------ childB(WebLayer) `--- pom.xml`------ pom.xml 父pom文件 <dependencyManagement> <dependencies> <dependency>
Maven讲解之 依赖管理
Maven讲解之 依赖管理本章节我们将通过两个例子来实例讲解一下Maven的依赖关系。两个例子新建两个Maven Project(War)。一客户模块和市场模块作为例子(只举业务逻辑例子,无核心代码)。另外Customer Model 将依赖于Market Model。 Market Model目录结构 操作点install(install 该项目,使Maven 初次下载其生命周期管理的组件) 右
Gradle for Android(三)——依赖管理(一)
前言:正如标题所述本节我们一起来讨论AS中的依赖管理和集成第三方开源库时,遇到依赖冲突如何解决的问题。
maven依赖管理和生命周期
maven依赖管理和生命周期
相关热词 c++和c#哪个就业率高 c# 批量动态创建控件 c# 模块和程序集的区别 c# gmap 截图 c# 验证码图片生成类 c# 再次尝试 连接失败 c#开发编写规范 c# 压缩图片好麻烦 c#计算数组中的平均值 c#获取路由参数