因此,我面临的一个问题是拖慢了我的开发过程。
我在tomcat 8中使用eclipse。
我的软件有3个在不同项目上运行的不同的tomcat服务器。
同样,我的软件分为8个组件,每个tomcat服务器都使用其他一些项目。
现在,我正在使用Jenkins来构建软件并将jar部署到tomcat服务器的Web内容文件夹中。
主要问题是构建它需要1分钟,然后我需要刷新eclipse中的所有项目,然后从eclipse重新启动tomcat服务器。
我正在寻找一种更轻松,更快捷的方法。
有什么方法可以将Eclipse中的tomcat服务器指向实际查看项目的src
文件夹,而不是查找jar。
最佳答案
有一个technique可让Tomcat从您的eclipse项目中创建Web上下文,而不是构建并部署到Tomcats webapp文件夹中。主要优点是不需要构建war
文件或复制类(文件由动态Web项目完成)。
基本上涉及以下内容:
您有一个带有bin
文件夹的eclipse项目,与jar文件的依赖关系,可能与其他项目的依赖关系以及一个包含Webapp资源(包括web
文件夹)的WEB-INF
文件夹。
无需部署到Tomcat,而是在Tomcats server.xml
中创建一个上下文,该上下文指向Tomcat运行该应用程序所需的项目资源。然后,Tomcat从项目位置获取类和资源。
完成一些开发并希望Tomcat接受更改后,您可以使用Tomcats Manager重新启动应用程序。管理器具有基于HTTP的界面,因此甚至可以从命令行完成此操作。
上面的链接描述了针对Tomcat 7的操作方法。在Tomcat 8中,此技术的语法为changed,看起来像这样(您明白了):
<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>