来源:http://www.javaeye.com/wiki/struts2/1321-struts2-development-environment-to-build

在上面搭建环境的过程中,我们发现,Library的管理存在着一定问题。这个问题主要表现为:


1. 不容易做Library的版本管理。如果Library的版本需要升级,那么我们不得不重新copy一份新的jar包,并且借助IDE重新指定项目的classpath。这种劳动,对于一个项目还可以接受,如果你有10多个项目,那么jar包的复制工作会让你很头疼。

2. 每个项目都会有Library的副本。这一点让人非常恼火。实际上,对于一个公司或者一个项目组而言,使用的技术体系基本不变。然而,每个项目的Library却是分开的。不仅如此,每个项目都要从svn中下载大量的相同的Library文件,给我们的硬盘造成极大的空间浪费。对于那些频繁使用Branch的项目来说,这些Library的下载简直就是噩梦。

所以,我们需要一个集中式的Library管理方式。而这一点曾经在Javaeye的海阔天空版激烈得讨论过使用maven来进行管理还是自行管理。

Readonly 写道

共享类库可以用IDE reference project解决,公司内部项目给常用的lib建立一个project,从CVS上check out,其他工程项目都依赖这个project就可以了,ant build也直接引用这个项目的jar就可以,项目体积照样只有几百K。

——一个讨厌ant,更加讨厌maven的人

我比较赞同Readonly老大的说法而倾向于自行管理。maven这样的高级货,偶实在是用不来啊。那么我们就来看看如何使用共享类库来进行Library管理。


1. 首先建立一个共享类库

建立一个共享类库,将项目中需要共享的Library进行恰当的分类。同时,为每个加入到Library中的jar包进行统一的格式化的命名方式。例如:spring/spring-2.5.5.jar等等。这样的好处在于,一旦jar包的版本有更新,可以加入新的jar包而保留原来的。在项目中,就可以通过引用不同版本的jar包来对Library进行版本管理。

以下就是我个人建立的一个共享类库,大家可以参考:

svn://www.demo2do.com/library

2. checkout共享类库,并将其导入到IDE中作为一个Library工程

3. 为你的项目指定classpath,引用的jar包存在于Library工程中

在这里,我们可以看到,原来项目中的lib目录被删除,jar包也被删除。在项目中所引用的jar包是Library项目中的jar包。

完善Library的管理方式相关推荐

  1. 塑造公司管理方式(三)- 沟通、创新、未来

    沟通:路由器 管理中的上层收集信息,并审慎的决定该讲哪些信息分发给在他们底下辛苦工作的人,这就是绝大多数公司信息流动的传统模式,信息作为权利和控制的手段被人们囤积.因此,许多商业人士之所以能升至管理者 ...

  2. 软件开发公司的管理方式(上)

    总结一些管理心得.经验与想法,写出来,便于解决问题或日常检视公司运行状况的时候看看. 一.动态平衡与发展 公司创办的热情.首轮机会过去后,面对经营中不断出现的诸多问题,经营者的想法会发生很多变化,会发 ...

  3. 项目管理之从战略层出发完善组织架构管理

    理解战略目标才能更好的组织架构: 貌似很多互联网企业公司都有着一个共同点存在,就是所谓的"扁平化管理"著称,但随着行业发展,公司架构的调整,很多管理方式都随着实际情况发生这改变,一 ...

  4. bom树形结构 表设计_K/3管理视角:树形结构下的BOM管理方式!

    原标题:K/3管理视角:树形结构下的BOM管理方式! BOM(物料清单),也就是以数据格式来描述产品结构的文件,是ERP使用过程中的重要组成部分.通过BOM我们能够清晰的了解产品的结构以及所需要的物料 ...

  5. Kubernetes集群部署方式以及pod的管理方式

    文章目录 一.Kubernetes部署方式 1.基础环境配置 2.操作步骤 二.集群的创建以及对于node和pod的基础管理方式 1.node的加入方式 2.Kubernetes结合HarBor仓库进 ...

  6. linux 下的 service 和systemctl 服务管理方式

    linux 下的 service  和systemctl 服务管理方式 man service 得到:执行一个system V 风格的启动脚本 service - run a System V ini ...

  7. 操作系统--内存管理方式

    "碎片的内存"描述一个系统中所有不可用的空闲内存.这些资源之所以仍然未被使用,是因为负责分配内存的分配器使这些内存无法使用.这一问题通常都会发生,原因在于空闲内存以小而不连续方式出 ...

  8. linux发行版 以及 包管理方式

    linux发行版 以及 包管理方式 2010-07-26 14:24:41 分类:  linux 发行版 Debian --- Debian Project诞生于1993年8月13日,它的目标是提供一 ...

  9. 二十七、连续分配管理方式

    一.知识总览 注意:连续分配是指为用户进程分配的必须是一个连续的内存空间,而非连续分配管理方式可以是离散的内存空间. 二.单一连续分配 二.固定分区分配 **分区大小相等:**缺乏灵活性,但是很适用于 ...

最新文章

  1. 【HM】第3课:JavaScript高级
  2. Linux 安装composer
  3. leetcode 236. 二叉树的最近公共祖先 递归解法 c语言
  4. onclick 传参,用转义符进行转义。
  5. java 示例_功能Java示例 第4部分–首选不变性
  6. java什么变量用作英文_Java基础之变量-什么是变量
  7. 添加常见 URL Scheme 列表,方便快速查询⓶QA:URL Scheme适配好为何仍然报错
  8. autoreconf:未找到命令
  9. 无刷直流电机构成及工作原理详解
  10. Windows下GetLastError()返回值介绍
  11. flutter快速入门,一周搞定前后端,上线完毕
  12. JSP文件的打开方式
  13. 应用开发不可不知的五大BaaS后端云服务
  14. 用python实现相声、评书自动下载(一)
  15. stm32 智能避障小车(二)之sg90
  16. Deepin v20安装过程详细步骤
  17. 营在微博:企业微博营销实战宝典
  18. 磁盘格式之exFat和NTFS怎么选?
  19. Kotlin基础学习 --- 内置函数apply、let
  20. 【MQ】 解决MQ 2035-MQRC_NOT_AUTHORIZED

热门文章

  1. BW之数据源 增量管理DELTA
  2. 一个关于winform多线程的教程(pdf)
  3. Winform中FormClosing与FormClosed区别与使用
  4. Android—OkHttp同步异步请求过程源码分析与拦截器
  5. java冒泡排序算法代码降序_冒泡排序(起泡排序)算法及其C语言实现
  6. pcie和usb哪个带宽高_了解数字示波器采样率和模拟带宽的规格
  7. python 摄像头标定_python 3利用Dlib 19.7实现摄像头人脸检测特征点标定
  8. QFontDatabase: Cannot find font directory
  9. Android开发之ApiCloud模块开发步骤
  10. 使用ab进行压力测试详解