POM优化(五)

原创 2012年03月30日 13:24:45
优化POM的步骤
1.依赖上移
 多个子module中共用同一个dependency,可抽取到父POM中。例:一些依赖如spring和hibernate-annotations在多个模块中被声明。每个hibernate依赖都重复排除了javax.transaction。在这些依赖配置被上移之后,我们需要为每个POM移除这些依赖的版本,否则它们会覆盖定义在父项目中的dependencyManagement
父POM:
<dependencyManagement>
 <dependencies>
  <dependency>
   <groupId>org.springframework</groupId>
   <artifactId>spring</artifactId>
   <version>2.0.7</version>
  </dependency>
  <dependency>
   <groupId>org.hibernate</groupId>
   <artifactId>hibernate-annotations</artifactId>
   <version>3.3.0.ga</version>
  </dependency>
  <dependency>
   <groupId>org.hibernate</groupId>
   <artifactId>hibernate-commons-annotations</artifactId>
   <version>3.3.0.ga</version>
  </dependency>
  <dependency>
   <groupId>org.hibernate</groupId>
   <artifactId>hibernate</artifactId>
   <version>3.2.5.ga</version>
   <exclusions>
    <exclusion>
     <groupId>javax.transaction</groupId>
     <artifactId>jta</artifactId>
    </exclusion>
   </exclusions>
  </dependency>
 </dependencies>
</dependencyManagement>


子POM:
<project>
 ...
 <dependencies>
  <dependency>
   <groupId>org.hibernate</groupId>
   <artifactId>hibernate-annotations</artifactId>
  </dependency>
  <dependency>
   <groupId>org.hibernate</groupId>
   <artifactId>hibernate</artifactId>
  </dependency>
 </dependencies>
 ...
</project>


如果多于一个项目依赖于一个特定的依赖,你可以在dependencyManagement中列出这个依赖。父POM包含一个版本和一组排除配置,所有的子POM需要使用groupId和artifactId引用这个依赖。如果依赖已经在dependencyManagement中列出,子项目可以忽略版本和排除配置。
2.版本重复修复
 有一些依赖是关联的,共享同样的版本。这种情况通常是因为某个项目的发布版本中包含了多个紧密关联的组件。例如,看一下依赖hibernate-annotations和hibernatecommons-
annotations,两者的版本都是3.3.0.ga,而且我们可以预料这两个依赖的版本只会一起向前改变。hibernate-annotations和hibernate-commons-annotations都是JBoss发布的同一个项目的组件,当有新的版本发布的时候,两个依赖都会改变。
父POM:
<project>
 ...
 <properties>
  <hibernate.annotations.version>3.3.0.ga</hibernate.annotations.version>
 </properties>
 <dependencyManagement>
  ...
  <dependency>
   <groupId>org.hibernate</groupId>
   <artifactId>hibernate-annotations</artifactId>
   <version>${hibernate.annotations.version}</version>
  </dependency>
  <dependency>
   <groupId>org.hibernate</groupId>
   <artifactId>hibernate-commons-annotations</artifactId>
   <version>${hibernate.annotations.version}</version>
  </dependency>
  ...
 </dependencyManagement>
 ...
</project>


3.兄弟模块依赖和兄弟模块版本的重复(可归类到上述1和2)
4.优化插件
 在顶层POM中使用dependencyManagement片段管理依赖
 

maven使用基本功——pom文件优化知多少

一个maven的pom文件优化的简单描述
  • jianxin1009
  • jianxin1009
  • 2013年12月16日 20:42
  • 6798

ACCP7.0S2优化myschool数据库设计第四章上机1-4

--上机1 select MAX(studentresult) as '最高分',MIN(studentresult) as '最低分' from result where subjectid=(se...
  • baidu_36074048
  • baidu_36074048
  • 2017年01月11日 16:43
  • 818

高精度乘高精度FFT优化算法

高精度乘高精度FFT优化算法 传入参数约定:传入参数均为string类型,返回值为string类型 算法思想:将两个高精度乘数每个数位上的数视为多项式对应的系数,用o(n*log(n))的...
  • liangzhaoyang1
  • liangzhaoyang1
  • 2016年03月18日 23:32
  • 1354

Maven POM 优化 - Scope

官方文档:Dependency Scope 许多程序对 Maven 其实并不熟悉,大多停留在会使用 mvn clean package打包的程度上。我个人很推荐大家有时间的时候看看 Maven 方面...
  • u013704227
  • u013704227
  • 2016年12月15日 14:24
  • 196

《剑指offer》:[56]五岔路口交通管理红绿灯设计

抽象建模能力        计算机只是一种工具,是为我们服务所驱使的工具,我们不能一头扎入这个编程的海洋出不来甚至迷失了方向。它的作用是帮助我们解决实际生活中的问题。程序员的工作就是把各种现实的问题抽...
  • gogoky
  • gogoky
  • 2016年06月28日 15:48
  • 2652

mysql数据库大数据量优化方式

MySQL数据库作发布系统的存储,一天五万条以上的增量,预计运维三年,怎么优化? 优化应该不仅仅是数据库方面 使用高性能的服务器 多使用缓存 页面服务器、数据库服务器、图片服务器、上传下载...
  • susu_php
  • susu_php
  • 2014年02月17日 10:16
  • 541

最大熵学习笔记(五)最优化算法

生活中我们经常听到人们说“不要把鸡蛋放到一个篮子里”,这样可以降低风险。深究一下,这是为什么呢?其实,这里边包含了所谓的最大熵原理(The Maximum Entropy Principle)。本文为...
  • peghoty
  • peghoty
  • 2014年05月22日 08:27
  • 9776

百分比形式保留小数点后2位(且四色五入)

//有效位数 function math(num,v) {     var vv = Math.pow(10,v);     return Math.round(num*vv)/vv; } //...
  • big1989wmf
  • big1989wmf
  • 2017年04月12日 16:01
  • 280

ACCP7.0S2优化myschool数据库设计第二章上机练习1-7

use master go exec sp_configure 'show advanced options',1 go reconfigure go exec sp_configure 'xp_cm...
  • baidu_36074048
  • baidu_36074048
  • 2017年01月06日 16:57
  • 507

一步步优化JVM五:优化延迟或者响应时间(1)

引用 :http://blog.csdn.net/zhoutao198712/article/details/7791969  本节的目标是做一些优化以满足对应用对延迟的需求。这次需...
  • lmy4710
  • lmy4710
  • 2015年01月03日 17:45
  • 903
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:POM优化(五)
举报原因:
原因补充:

(最多只允许输入30个字)