自动将新的Jar文件复制到Tomcat项目的WEB-INF / lib文件夹

时间:2010-05-17 18:55:55

标签: java eclipse tomcat build-process jar

我正在开发一个Tomcat应用程序(实际上它是一个Red5应用程序,但这实际上是相同的。)

这包含通常的/ WebContent / WEB-INF / lib文件夹,我在其中找到它使用的各种jar。

最近,我从我的应用程序项目中取出了一个包,并转换为一个单独的Jar项目,然后作为开源发布(它位于同一个工作区)。

我想要的是,当我构建我的Tomcat应用程序时,Eclipse会自动将我内置的Jar的最新版本拉入其/ WebContent / WEB-INF / lib文件夹。

当你从另一个项目中引用一个项目时,这是你用.NET获得的行为,我想这就是我期望找到某种方法的原因。

目前,我必须在每次构建时手动复制/粘贴Jar。

当然,理想情况下,当我构建我的Tomcat应用程序时,它会自动检测Jar项目是否也是最新的,如果没有,则构建它。

最感激的任何建议。

3 个答案:

答案 0 :(得分:2)

我一直在尝试这样做 - 而且我已经几乎让它运转起来了。我在WEB-INF / lib目录中有3个类库,所以我为每个类库eclipse项目创建了自定义Ant构建器规则,以便每当创建lib / classlib .jar文件时项目源更改(在Eclipse帮助中搜索“创建项目构建器Ant构建文件”)。

然后我将每个jar文件(仅仅添加项目引用)添加到Web项目的“Java EE Module Dependencies”部分。

导出Web项目时,它们将显示在.war文件中。我没有找到一种方法让它们无需导出(我想要就地调试而不是部署.war文件)。

我必须同意systempuntoout,最可能的解决方案是使用Ant构建器。

编辑:Ant复制任务有效。将名为copylibs.xml的文件添加到Web项目的根目录:

<?xml version="1.0" encoding="UTF-8"?>
<project name="copylibs" default="copylibs" basedir=".">

    <target name="copylibs" description="Copy dependent jar files">
        <copy file="../com-aaaa-util/lib/com-aaaa-util.jar" todir="webroot/WEB-INF/lib/" />
        <copy file="../com-aaaa-mnp/lib/com-aaaa-mnp.jar" todir="webroot/WEB-INF/lib/" />
        <copy file="../com-aaaa-bbbb/lib/com-aaaa-bbbb.jar" todir="webroot/WEB-INF/lib/" />
    </target>
</project>

然后添加一个Ant构建器以在构建期间执行此操作。

答案 1 :(得分:1)

我会选择以下构建工具:
1. Ant使用File Tasks
2. Maven

答案 2 :(得分:0)

您可以将Eclipse WTP配置为直接从Eclipse工作区自动组装Web应用程序,而无需复制任何jar。这样,您在依赖项目中的更改将立即反映在已部署的Web应用程序中。

作为替代方案,您可以使用Ant或Maven脚本将jar复制到您想要的位置。使用Maven,您几乎可以免费获得它而无需编写任何脚本或其他配置。