所以我正面临着一个阻碍我的开发进程的问题。
我正在使用eclipse与tomcat 8。我的软件有3个不同的tomcat服务器,运行在不同的项目上。
同样我的软件被分为8个组件,每一个tomcat服务器使用一些其他的项目。
现在我正在使用Jenkins来构建我的软件,并将jar部署到tomcat服务器的web content文件夹中。
主要问题是构建它需要1分钟,然后我需要刷新eclipse中的所有项目,然后从eclipse中重新启动tomcat服务器。
我正在寻找一种更简单、更快捷的方法来做这件事。
是否有任何方法指向tomcat服务器在eclipse中实际查看项目的src
文件夹,而不是寻找jar ?
有一种技术可以让Tomcat从eclipse项目中创建web上下文,而不是构建并部署到Tomcat的webapp文件夹中。主要优点是不需要构建war
文件或复制类(像动态web项目那样的文件)。
基本上包括以下内容:
- 你有一个eclipse项目与
bin
文件夹,依赖于jar文件,可能依赖于其他项目和web
文件夹包含webapp资源,包括WEB-INF
文件夹。 - 不是部署到Tomcat,而是在Tomcat
server.xml
中创建一个上下文,指向Tomcat运行应用程序所需的项目资源。然后Tomcat从项目位置获取类和资源。 - 在进行了一些开发并希望Tomcat接收更改后,可以使用Tomcat管理器重新启动应用程序。管理器有一个基于HTTP的接口,所以这甚至可以从命令行完成。
上面的链接描述了如何为Tomcat 7执行此操作。在Tomcat 8中,该技术的语法发生了变化,看起来像这样(您明白了):
<Context path="/mycontext" docBase="/myproj/web">
<Resources>
<PreResources webAppMount="/WEB-INF/classes" base="/myproj/bin" className="org.apache.catalina.webresources.DirResourceSet"/>
<PreResources webAppMount="/WEB-INF/classes" base="/myproj2/web" className="org.apache.catalina.webresources.DirResourceSet"/>
<PreResources webAppMount="/WEB-INF/lib" base="/myproj/lib" className="org.apache.catalina.webresources.DirResourceSet"/>
<PreResources webAppMount="/WEB-INF/lib" base="/myproj2/lib" className="org.apache.catalina.webresources.DirResourceSet"/>
</Resources>
</Context>
很难使@wero解决方案工作。
找到了另一个有用的解决方法:
右键单击project -> build path -> configure build path -> source
你只需要将另一个项目的源代码链接到servlet中。