eclipse解決maven項目右鍵run as沒有run on server的問題:


問題:

在運行maven項目的時候,發現在項目上右鍵run as 沒有run on server選項;

解決方法:在新建maven項目的時候,在packaging中選war而不選jar。

如圖,通過maven建web項目時packaging里選war:

我測試過,如果Packaging里選的是jar,項目無論如何都無法作為web項目正常啟動。

我也測試了另一種方法,貌似無效:

這種方法是在新建maven時Packaging里選jar,但是中間通過以下方式改成動態的web項目。

具體做法如下:

在maven項目上右鍵>properties>Project Facets:

可以看到當前並不是web項目,所以勾選兩個選項:Dynamic Web Module、JavaScript:

如果項目中沒有web.xml可以在這里進行預設置

可以點擊上圖中的Further configuration avaliable

之后可以看到默認配置:

如果不修改它的默認配置,會直接在項目發布路徑下生成webcontent,如下圖所示:

所以需要修改配置如下:

勾選生成web.xml(如果不勾選不會生成web.xml),並修改web.xml生成的所在文件夾為webapp。

點擊OK,之后點擊Apply即可。

如下圖,已經生成webapp和內部的web.xml:

接着按照正常的項目結構,可以把webapp拖到src下main文件夾:

之后,可以在項目上右鍵run as,就可看到Run on server:

服務啟動后,瀏覽器也能正常啟動,但是還沒完,還是會出錯。

我配的歡迎頁面失效了,會顯示404:

看來聲明為jar還是無法運行成功。

基本上,除了改成war包,還沒找到其它方法解決方法。

可以看一下建立maven項目時,聲明jar包與war包產生的兩種pom文件區別:

jar:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.changping.shirodemo</groupId>
  <artifactId>shirodemo</artifactId>
  <version>0.0.1-SNAPSHOT</version>
</project>

war:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.changping.shirodemo01</groupId>
  <artifactId>shirodemo01</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>war</packaging>
</project>

通過比較pom文件可以發現:聲明war也就比jar多了<packaging>war</packaging>。

所以如果不想新建maven項目、或者歡迎頁面不想變404的話,可以在pom文件里加上<packaging>war</packaging>,修改之后update即可。

如圖是packaging修改為war,服務啟動后,歡迎頁面已經可以正常顯示:

至於如果maven項目里webapp下沒有web.xml的解決方法,除了剛才那種右鍵>properties>Project Facets方式以外,還可以直接從別的項目粘一個即可:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM