eclipse中web工程引用其它工程的配置说明

我的eclipse版本信息如下:
Eclipse Java EE IDE for Web Developers.
Version: Luna Service Release 1 (4.4.1)
Build id: 20140925-1800

首先我们创建一个web工程aWebProj和一个普通java工程aCommon。如下图:
工程结构
其中aWebProj是我们要发布的web工程,aCommon是存放一些工具类的工程。为什么要单独构建一个工程呢?这是考虑到,有可能还有一个bWebProj工程,也会用到相同的工具类,所以把能够复用的工具类、entity、pojo之类的独立建一个工程。
然后web工程引用工具类工程,如下所示:
这里写图片描述
然后在web工程里就可以引用工具类的方法了。
这时候我们将aWebProj发布到tomcat中,如下图:
这里写图片描述
但是此时我们到tomcat的webapps目录下查看aWebProj工程时会发现,aCommon包并没有打进来。这会导致我们启动时报类不存在的异常。

这里需要特别说明一下。这个问题算是某些eclipse版本的bug,并不是所有的eclipse上都有的问题,如果你所用的eclipse恰好没有问题,那么可以不用往下看了。

如果碰到此类问题,可参考如下的解决方案。
首先先确保被引用的aCommon工程的属性是一个Module。如下所示:
这里写图片描述
然后打开aWebProj工程所在的目录,打开.settings目录,用文本方式打开org.eclipse.wst.common.component这个配置文件:
这里写图片描述
此时你会看到的内容为:

<?xml version="1.0" encoding="UTF-8"?><project-modules id="moduleCoreId" project-version="1.5.0">
    <wb-module deploy-name="aWebProj">
        <wb-resource deploy-path="/" source-path="/WebContent" tag="defaultRootSource"/>
        <wb-resource deploy-path="/WEB-INF/classes" source-path="/src"/>
        <property name="context-root" value="aWebProj"/>
        <property name="java-output-path" value="/aWebProj/build/classes"/>
    </wb-module>
</project-modules>

增加关键的三行内容后:

<?xml version="1.0" encoding="UTF-8"?><project-modules id="moduleCoreId" project-version="1.5.0">
    <wb-module deploy-name="aWebProj">
        <wb-resource deploy-path="/" source-path="/WebContent" tag="defaultRootSource"/>
        <wb-resource deploy-path="/WEB-INF/classes" source-path="/src"/>
        <dependent-module archiveName="aCommon.jar" deploy-path="/WEB-INF/lib" handle="module:/resource/aCommon/aCommon">
            <dependency-type>uses</dependency-type>
        </dependent-module>
        <property name="context-root" value="aWebProj"/>
        <property name="java-output-path" value="/aWebProj/build/classes"/>
    </wb-module>
</project-modules>

保存关闭。这时候刷新aWebProj工程,重新加载到tomcat中,会是这个样子:
这里写图片描述
和上面加载时的对比一下,发现aWebProj里多了一个aCommon图标,这说明编译到tomcat里的工程,是将aCommon打成jar包放进去了。此时可以再到tomcat的webapps目录下查看aWebProj工程,aCommon.jar存在于aWebProj\WEB-INF\lib目录下。

再次强调一下我们在org.eclipse.wst.common.component这个配置文件里增加的三行内容:

        <dependent-module archiveName="aCommon.jar" deploy-path="/WEB-INF/lib" handle="module:/resource/aCommon/aCommon">
            <dependency-type>uses</dependency-type>
        </dependent-module>

其中aCommon.ja和aCommon/aCommon,根据自己需要引入工程的名字更改一下即可。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值