因此,我面临的一个问题是拖慢了我的开发过程。

我在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>

09-20 15:56