加入收藏 | 设为首页 | 会员中心 | 我要投稿 安卓应用网 (https://www.0791zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 程序设计 > 正文

WTP技巧系列之打造最小依赖jar包篇

发布时间:2020-05-23 03:00:48 所属栏目:程序设计 来源:互联网
导读:WTP技巧系列之打造最小依赖jar包篇 一、引言 WTP是eclipse的子项目,致力于j2ee项目开发,有着广泛的用户和支持者,现在已经是wtp2.x版本了。我从wtp1.5x开始使用,之前用myeclipse,但因为myeclispe是商用软件而且体积庞大一直想找个替代品,既然要作为替代

WTP技巧系列之打造最小依赖jar包篇 一、引言 WTP是eclipse的子项目,致力于j2ee项目开发,有着广泛的用户和支持者,现在已经是wtp2.x版本了。我从wtp1.5x开始使用,之前用myeclipse,但因为myeclispe是商用软件而且体积庞大一直想找个替代品,既然要作为替代品,那么必须要有非常吸引人的优点,而这些优点,我在wtp中找到了。到目前为止使用wtp已经一年有余了,对wtp开发j2ee已经有了一定的经验积累,独乐乐不如众乐乐,于是打算写一系列的wtp或eclipse的使用技巧,以飨众看官。 二、Eclipse项目文件之.classpath文件 使用eclipse开发java程序的朋友可能都知道一个eclipse项目默认会在根目录生成两个文件,一个.project文件和一个.classpath文件,前者作为该项目的描述,而后者则是存放项目构建时所需组件的信息,二者都是必须的。 有心的朋友如果打开过这两个文件会发现它们的文件结构是xml式的,而文件第一行也明文声明为xml。 由于.project跟今天介绍的内容关系不大,所以这里着重介绍.classpath文件。 .classpath文件的根元素是classpath,次级元素是classpathentry,也就是真正描述构建信息的元素。它有两个属性,kind跟path。Kind描述构建信息的类别,而path顾名思义当然是该构建信息的路径。 下面帖出点代码来说明:

以上是一个默认java工程的.classpath文件的主要内容,分别描述了源文件夹,库文件,输出文件夹。 通过以上介绍相信大家对.classpath文件有了个初步认识了,接下来进入今天的正题。 三、Wtp部署篇 使用过myeclipse的朋友都知道用myeclipse部署应用程序的时候默认情况下会将项目buildpath中的jar包都拷贝到web-inf/lib目录下,因此发布出去的程序一般不需要做额外修改便可正常使用。但使用wtp部署应用程序的时候就不太一样,默认情况下是不会将buildpath中的jar包拷贝到web-inf/lib下的,因此发布出去的程序如果不手动将依赖的jar包拷贝的lib下就会出错。 也许很多人看到这里就会问既然myeclipe这个功能如此方便,为什么wtp却做不到呢?那么我来告诉你,虽然myeclipse这个功能非常方便,但是它也有相当的弊端,众所周知,buildpath中的jar包很多是编译的时候需要,而实际运行的时候只需要其中的一部分,因此诸如myeclipse这般将所有jar包拷贝到发布程序中并非明智之举。而wtp也许是看到了这一点,所以设计的时候默认不自动拷贝jar包到发布程序中。那么这样做又是可取的吗?答案是否定的。这会让部署变的麻烦,因为你需要手动将所需jar包拷贝到发布程序中,这对于越来越习惯于“自动化”开发的人们简直是一种折磨。有没有解决办法呢?当然有,这就是本文的核心内容所要介绍的,接下来着重介绍。 四、打造最小依赖jar包 有心的朋友看到这里或许已经知道在什么地方去实现这个功能了,没错,就是传说中的.classpath文件。 看过前面内容的朋友已经知道该文件的作用了,那么我就不多废话直接切入正题。通过自己的摸索,我发现classpathentry元素还有子元素attributes,用来描述classpathentry的附加属性。而每个附加属性通过attribute元素来表达,请看下面代码:

Kind="lib"表示该项是jar包,而后path为jar包的相对/绝对路径。 attribute name="org.eclipse.jst.component.dependency"表示该项信息为项目部署时的依赖项,也就是说需要在部署时自动拷贝到应用程序中去,而后的value就是拷贝时的路径。通过添加这样的代码就达到了自动拷贝的目的,因此只需要将必需的lib或con项手动添加这样的代码,就可以作到部署时生成最小依赖jar包的效果。而对于不需要部署时自动拷贝的lib或con项,则保持默认,比如上面的代码<classpathentry kind="lib" path="lib/mysql-connector-java-5.1.5-bin.jar"/>,这样它只在编译的时候依赖,而运行的时候不依赖。 用过ant的朋友看完这段就会发现,这跟ant脚本有异曲同工之妙,只需一次修改,而后无限使用,悠哉乐哉! ( 注:以上代码是在 eclipse3.3.x+wtp2.x 中实现,如果跟你的代码有所出入,请自行查资料修改。) 五、结语 学无止境这句至理名言每日都鞭策着我,催我上进。在这个竞争日趋激烈的年代,我们唯有抓紧一分一秒的学习来为自己增加竞争的筹码,只有这样,我们才能在竞争中立于不败。当然,除了知识的补充外,我们更需要的是有一颗探索的心,有探索,才会有创新。 说实话,这篇文章没有任何技术含量,因此你若想通过这篇文章获得什么高深的知识的话,那么你将失望。既然这样,那我写这篇文章的意义何在?其实很简单,我想通过它来说明,知识是无穷的,就看你是否抓得住,机遇也一样。 (全文完) Java 咖啡群欢迎大家加入 ( 加群者送分 , 顶帖者也送分哈 ), 群号 :60446231 本群以讨论 IT 行业话题为主 , 本着交流信息的原则 , 为大家营造一个轻松欢娱的环境 , 给平时枯燥的工作增添一些调味剂 . 当然 , 技术问题同样在讨论范围之中 . 本人在这里欢迎大家的到来 , 并预祝大家五一快乐 .( 鼓掌 ... 谢谢 ... 嘿嘿 ...) Java 基础群 :49827836 为 java 初学者提供帮助,在讨论及解决问题中共同成长。

(编辑:安卓应用网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读