如何优化maven 下载pom依赖包项

12914人阅读
每周一结(85)
Maven(12)
& & &使用Maven以后,可以更方便的进行构件化开发,一般项目中存在多模块,它们的关系,包括父子关系以及依赖关系,都可以通过pom文件的配置来实现的。1. 父子关系& & & 一个多模块项目通过一个父POM 引用一个或多个子模块来定义。& & & a. 在父目录中分别创建子项目& & & b.&父项目,通过以下配置,将子项目关联:如下:&modules&&&&&&&&module&myapp-client&/module&&&&&&&&module&myapp-core&/module&&&&&&&&module&myapp-webapp&/module&&&&/modules&&&&& & &其中:在modules元素中,每个modules 元素对应了一个 父目录下的子目录。Maven会去这些子目录中寻找pom.xml 文件,并且在构建mydemo时会将这些子模块包含到要构建的项目中。& & 另外,通过配置&packaging&pom&/packaging& 表示这个父项目不像之前的项目那样创建一个JAR 或者一个WAR,它仅仅是一个引用其它Maven 项目的POM。pom.xml 中下一部分列出了项目的子模块。& & c. 在子项目的POM中添加父项目关联:如下:&parent&&&&&&&&groupId&com.china.demo&/groupId&&&&&&&&artifactId&myapp-parent&/artifactId&&&&&&&&version&1.0&/version&&&&/parent&&&2. 依赖关系& & 如果项目间存在依赖关系,如项目A依赖项目B,则需要在项目A的pom增加了对B的依赖节点&dependency&,表示A项目中需要B的jar包。
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:1350430次
积分:17123
积分:17123
排名:第576名
原创:329篇
转载:34篇
评论:2275条
阅读:10934
(2)(4)(4)(4)(4)(4)(4)(3)(4)(4)(4)(4)(4)(4)(4)(4)(6)(2)(4)(4)(4)(4)(5)(4)(4)(4)(4)(5)(6)(14)(4)(2)(5)(6)(8)(12)(8)(9)(10)(7)(15)(5)(7)(17)(11)(6)(8)(3)(6)(15)(14)(15)(14)(9)(6)(9)(1)
-------------------------------Maven依赖管理
我的图书馆
Maven依赖管理
其中一个Maven的核心特征是依赖管理。管理依赖关系变得困难的任务一旦我们处理多模块项目(包含数百个模块/子项目)。 Maven提供了一个高程度的控制来管理这样的场景。
传递依赖发现
这是很通常情况下,当一个库说A就依赖于其他库说B的情况下,另一个项目?想用A,则该项目需要使用库中B。
在Maven帮助下以避免这样的要求来发现所有需要的库。 Maven通过读取依赖项项目文件(pom.xml中),找出它们的依赖等。
我们只需要在每个项目POM定义直接依赖关系。 Maven自动处理其余部分。
传递依赖,包括库的图形可能会快速增长在很大程度上。可能出现情况下,当有重复的库。 Maven提供一些功能来控制传递依赖程度
Dependency mediation
Determines what version of a dependency is to be used when multiple versions of an artifact are encountered. If two dependency versions are at the same depth in the dependency tree, the first declared dependency will be used.
Dependency management
Directly specify the versions of artifacts to be used when they are encountered in transitive dependencies. For an example project C can include B as a dependency in its dependencyManagement section and directly control which version of B is to be used when it is ever referenced.
Dependency scope
Includes dependencies as per the current stage of the build
Excluded dependencies
Any transitive dependency can be excluede using "exclusion" element. As example, A depends upon B and B depends upon C then A can mark C as excluded.
Optional dependencies
Any transitive dependency can be marked as optional using "optional" element. As example, A depends upon B and B depends upon C. Now B marked C as optional. Then A will not use C.
传递依赖发现可以使用各种依赖范围如下文所述受到限制
This scope indicates that dependency is available in classpath of project. It is default scope.
This scope indicates that dependency is to be provided by JDK or web-Server/Container at runtime.
This scope indicates that dependency is not required for compilation, but is required during execution.
This scope indicates that the dependency is only available for the test compilation and execution phases.
This scope indicates that you have to provide the system path.
This scope is only used when dependency is of type pom. This scopes indicates that the specified POM should be replaced with the dependencies in that POM's &dependencyManagement& section.
依赖关系管理
通常情况下,我们已经一套项目在一个共同的项目下。在这种情况下,我们可以创造让所有的公共依赖一个共同的POM,然后进行分项目POMS为这个POM父。下面的例子将帮助你理解这个概念
以下是上述的依赖图的细节
APP-UI-WAR依赖于App-Core-lib和&App-Data-lib。
Root 是&App-Core-lib 和&App-Data-lib 的父类。
Root 定义LIB1,LIB2,Lib3作为其依赖部分依赖关系。
App-UI-WAR
&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&panyname.groupname&/groupId&
&artifactId&App-UI-WAR&/artifactId&
&version&1.0&/version&
&packaging&war&/packaging&
&dependencies&
&dependency&
&groupId&panyname.groupname&/groupId&
&artifactId&App-Core-lib&/artifactId&
&version&1.0&/version&
&/dependency&
&/dependencies&
&dependencies&
&dependency&
&groupId&panyname.groupname&/groupId&
&artifactId&App-Data-lib&/artifactId&
&version&1.0&/version&
&/dependency&
&/dependencies&
&/project&
App-Core-lib &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"&
&artifactId&Root&/artifactId&
&groupId&panyname.groupname&/groupId&
&version&1.0&/version&
&modelVersion&4.0.0&/modelVersion&
&groupId&panyname.groupname&/groupId&
&artifactId&App-Core-lib&/artifactId&
&version&1.0&/version&
&packaging&jar&/packaging&
&/project&
App-Data-lib &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"&
&artifactId&Root&/artifactId&
&groupId&panyname.groupname&/groupId&
&version&1.0&/version&
&modelVersion&4.0.0&/modelVersion&
&groupId&panyname.groupname&/groupId&
&artifactId&App-Data-lib&/artifactId&
&version&1.0&/version&
&packaging&jar&/packaging&
&/project&
&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&panyname.groupname&/groupId&
&artifactId&Root&/artifactId&
&version&1.0&/version&
&packaging&pom&/packaging&
&dependencies&
&dependency&
&groupId&panyname.groupname1&/groupId&
&artifactId&Lib1&/artifactId&
&version&1.0&/version&
&/dependency&
&/dependencies&
&dependencies&
&dependency&
&groupId&panyname.groupname2&/groupId&
&artifactId&Lib2&/artifactId&
&version&2.1&/version&
&/dependency&
&/dependencies&
&dependencies&
&dependency&
&groupId&panyname.groupname3&/groupId&
&artifactId&Lib3&/artifactId&
&version&1.1&/version&
&/dependency&
&/dependencies&
&/project&
现在,当我们建立App-UI-WAR项目,Maven会发现所有的依赖通过遍历依赖图和构建应用程序。
从上面的例子中,我们可以学到以下关键概念
常见的依赖关系可以用父POM的概念被放置在一个地方。&App-Data-lib&和&App-Core-lib&项目列表在&Root&目录(见Roots包类型。它是POM).
不需要Lib1, lib2, Lib3 作为依赖于 App-UI-WAR. Maven使用传递性依赖机制来管理这些细节。
TA的最新馆藏[转]&[转]&
喜欢该文的人也喜欢2011年4月 Java大版内专家分月排行榜第二2010年8月 Java大版内专家分月排行榜第二2010年5月 Java大版内专家分月排行榜第二2008年2月 Java大版内专家分月排行榜第二2007年7月 Java大版内专家分月排行榜第二
2011年2月 Java大版内专家分月排行榜第三2010年9月 Java大版内专家分月排行榜第三2008年9月 Java大版内专家分月排行榜第三2008年1月 Java大版内专家分月排行榜第三2007年11月 Java大版内专家分月排行榜第三2007年9月 Java大版内专家分月排行榜第三
本帖子已过去太久远了,不再提供回复功能。您当前所在的位置:
POM塑料优化到百度很困难吗
来源:塑外网
POM塑料排名到搜索引擎会很难吗昨日晚上还议论浏览POM聚甲醛就心里知道POM材料第一我们公司,就是网络销售营销公司的管理该想的困难问题,和我个别打字的没得很多干系。可无奈可是2月20号清晨咱们员工网上部门也有会议,给我下达死的差遣,POM等这几个单词还得能够实现百度搜索引擎页面,聚甲醛原料首要理想这个词的在不作弊的情况下搜查数目一定的要慢慢的发生在搜狗的下拉框或者关于搜索框中。
由此我们搜索引擎排名公司就会比以前很多的做事数了,要写许多和聚甲醛塑料的论文,故而,以后段干清悦就没因此简单了,这种不管了,非常生气的是管事的不涨工资啊怎么操作啊,还让不让人存活啊,万恶的老板啊。
埋怨结束,生活得要进行,只能顶着脑袋上,奋力来作,尽量早日做到这个目标,随后各位看我写文章的机会会许多了哦!!!
聚甲醛学名聚氧化聚甲醛(简称pom),又称赛钢、特钢。它是以甲醛等为原料聚合所得
POM-H(聚甲醛均聚物),POM-C(聚甲醛共聚物)是高密度、高结晶度的热塑性工程塑料...
1、 塑料处理
2、 塑机的选用
3、 模具及浇口设计
4、 熔胶温度
5、 注射速度
7、 滞留时间
8、 停机 后处理...
扫描二维码 添加好友 领取免费试样
尊敬的客户:公司为答谢新老顾客一直以来的大力支持,现推出免费试样活动}

我要回帖

更多关于 pom依赖 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信