簡體   English   中英

如何在Eclipse中運行Tomcat中的Maven項目

[英]How to run a Maven Project In Tomcat From Eclipse

我正在運行一個多級maven項目。 它將webapps打包為WAR,它依賴於打包為JAR文件的組件

我所做的大多數代碼更改都屬於那些JAR文件。

要測試更改,我需要重新打包JAR和WAR,並在tomcat中進行外部部署。

我嘗試使用sysdeo-tomcat-maven-eclipse插件,但它沒有按預期工作。

請告知是否有人有解決此問題的方法

謝謝Gaurav

使用Maven Eclipse Integration插件

我遇到問題我發現嘗試命令行工具mvn進行調試很有幫助。 根據經驗,如果它構建時沒有錯誤命令行,那么你可以在Eclipse中運行它(但是tomcat也有問題,所以你可能需要每隔一段時間清理工作目錄並清除緩存)。

除此之外,我真的建議使用Maven Eclipse Integration插件! 我使用Sonatypes插件repo http://m2eclipse.sonatype.org/sites/m2e的版本。 eclipse repo上有一個更新的集成,但它的工作方式不同,我還沒有時間調查它的用途。

如果您的項目是模塊化的,那么將根項目設置為一個簡單的項目(沒有Java,沒有Java EE)可能會有所幫助。 然后將子項目導入為簡單的Java項目(同樣沒有Java EE)。 您仍然可以激活依賴關系管理並通過項目運行構建目標。

導入模塊

您只需按依賴項選擇目標項目所需的子模塊。

選擇要包含為子項目的依賴項

對於構建war文件的任何項目,激活java ee的facets並在可用的進一步配置下配置上下文根(這只能執行一次,為什么屏幕截圖中缺少該選項,所以正確)。

選擇您喜歡的方面

然后為您的指定項目設置部署程序集。 應將所有兄弟項目(在您的工作區中處於活動狀態)添加到部署程序集中,還需要將maven依賴 構建路徑條目添加到部署程序集。 設置完成后,您可以使用Run on server指令啟動Web應用程序。

安裝部署程序集

我發現在編寫maven項目時始終保持純Java模式很有用。 Eclipse中的任何智能視圖只會模糊場景背后發生的事情,無論如何都可以通過激活指定的項目來訪問特定的編輯器!

我使用eclipse webtools插件,並從中運行我的Tomcat。 它有一個重新發布的方法,也可以發布jar(如果沒有,你只需清理目錄並重新發布)。

在pom文件中,您應該具有以下行,以便自動支持Web工具欄

<build>
    ...
    <plugins>
        <plugin>
            <artifactId>maven-eclipse-plugin</artifactId>
            <configuration>
                <wtpversion>1.5</wtpversion>
                ...
            </configuration>
        </plugin>
        ...
    </plugins>
    ...
</build> 

使用Maven Eclipse Integration插件和Web Runner

設置一個指定項目(已在另一個答案中描述),使用最新的Maven Eclipse Integration插件。 這應該位於您的eclipse版本的更新站點下。 在我的案例中Indigo - http://download.eclipse.org/releases/indigo Collaboration / Maven Integration for Eclipse)。

作為內置服務器的替代品,它經常無法更新部署程序集中的工作區依賴項(對於tomcat),我建議使用類似於maven指令jetty的Sonatype Web Application Launcher Webby :運行maven jetty插件。 您可以在sonatypes更新站點找到插件M2e Webby的插件 - http://m2eclipse.sonatype.org/sites/m2e-webby/ 安裝此插件后,您可以運行配置並從位於{project}/target/m2e-webby的自動構建運行Web應用程序。

在此輸入圖像描述

我建議將其中一個(默認)嵌入式jetty容器配置為servlet-api的提供者。 如果必須測試特定的運行時,可以通過瀏覽到服務器主目錄並選擇適當的提供程序來輕松配置外部容器。

我遇到的缺點很小:

  • 必須手動關閉Web應用程序,沒有“重新啟動”。
  • 每個Web應用程序都必須在單獨的端口上運行,它們不共享容器實例。

使用上述配置獲取當前版本的m2eclipse插件時,從JAR文件“file:.. g / workspace / .metadata / .plugins”錯誤中“無法讀取TLD”META-INF / c.tld“。

您需要從已部署的項目lib /文件夾中刪除servlet-api.jar和jsp-api.jar以修復上述錯誤,並設置自定義生成配置,以便不將2個文件復制到部署目錄。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM