STS 創建 Maven 項目填坑

来源:https://www.cnblogs.com/tosser/archive/2018/06/07/9148812.html
-Advertisement-
Play Games

用 STS 創建 Maven 項目並不複雜,只是其中有一些坑在裡面,我在解決這些坑的時候發現很多人都遇到了相同的問題,因此把創建的步驟記錄在這裡。所有的步驟不外乎就是一些套路,並沒有什麼複雜的地方,只是在被套路的時候,找解決方法真是很煩人的一件事情。畢竟不是什麼大的技術問題,只是一個工具的使用,難道 ...


  用 STS 創建 Maven 項目並不複雜,只是其中有一些坑在裡面,我在解決這些坑的時候發現很多人都遇到了相同的問題,因此把創建的步驟記錄在這裡。所有的步驟不外乎就是一些套路,並沒有什麼複雜的地方,只是在被套路的時候,找解決方法真是很煩人的一件事情。畢竟不是什麼大的技術問題,只是一個工具的使用,難道不鬧心麽?方便自己,也方便有需要的朋友。

 

創建項目

  啟動 STS ,點擊菜單的“ File ”->“ New ”->“ Maven Project ”,出現如下圖的視窗。

  在 Location 處填入相應的路徑,我這裡填入的是 “ D:\MavenTest ”,點擊“ Next ”按鈕,進入下一步,在“ Filter ”處填寫“ webapp ”會過濾列表中的選項,畢竟太多了挨個找不容易,如下圖。

  這裡選擇上面一項,可能這裡只出來一項。接著點擊“ Next ”按鈕,進入下一步。在該步驟中,會填寫項目的名稱和包名稱,如圖所示。

  完成該步驟的填寫後,點擊“ Finish ”按鈕,項目就創建完成了。

 

項目設置

  使用 STS 創建的項目預設是使用低版本的 JDK 進行開發的,並且預設使用的是 JSP 2.3版本的,在這個版本中不能解析 EL 表達式,也就是在 JSP 中寫入的 ${} 表達式會被原樣的輸出到頁面中。通常修改的方法是在項目名稱上點擊右鍵選擇“ Properties ”,在彈出的屬性對話框中選擇“ Project Facets ”選項,如下圖所示。

   從圖中可以看出,“ Dynamic Web Module ”的版本是“2.3”,這個版本是不支持EL表達式,然後“ Java ”的版本是“1.5”,我這裡將它修改為“1.8”,然後點擊“ Apply ”按鈕,,前提是你安裝了 JDK 1.8 的版本。但是修改“ Dynamic Web Module ”則會報錯,如下圖所示。

  這裡已經選擇了 Java 的 1.8 版本,但是仍然無法選擇它的 3.1版本。如何修改這裡呢,在 STS 中點擊“ Navigator ”,打開項目的“ .settings ”下的“ org.eclipse.wst.common.project.facet.core.xml ”文件,該文件內容如下:

1 <?xml version="1.0" encoding="UTF-8"?>
2 <faceted-project>
3   <fixed facet="wst.jsdt.web"/>
4   <installed facet="jst.web" version="2.3"/>
5   <installed facet="wst.jsdt.web" version="1.0"/>
6   <installed facet="java" version="1.8"/>
7 </faceted-project>

   將上面第 4 行代碼的 2.3 修改為 3.1,並保存,再回到 Project Facets 進行查看,Dynamic Web Module 對應的版本就改變了。

 

  接著看創建的項目,如下圖。

   Maven 項目提供了三個目錄,但是這裡顯然顯示不正確,在項目上點擊右鍵,選擇“ Properties ”,選擇“ Java Builld Path ”,如下圖所示。

  選中“ JRE System Library ”列,然後點擊“ Edit... ”按鈕,然後選擇“ Workspace default JRE(jdk1.8.0_102) ”,前提是你安裝了 JDK 1.8 的版本,然後點擊“ Finish ”按鈕,返回上一個視窗點擊“ Apply And Close ”按鈕,如下圖所示。

  此時,項目中的目錄就顯示正確了,如下圖所示。

  此時,項目並沒有完,為什麼呢?因為我們把 Dynamic Web Module 設置為 3.1 ,但是 web.xml 文件仍然是 2.3 的版本,找到 web.xml 查看,內容如下:

1 <!DOCTYPE web-app PUBLIC
2  "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
3  "http://java.sun.com/dtd/web-app_2_3.dtd" >
4 
5 <web-app>
6   <display-name>Archetype Created Web Application</display-name>
7 </web-app>

  直接將 web.xml 文件刪除掉,在 WEB-INF 目錄上點擊右鍵 New 選擇 Other 項,選擇 XML File 後點擊“ Next ”按鈕,然後修改文件名為“ web.xml ”,接著點擊“ Next ”按鈕,然後選擇“ Create XML file from an XML schema file ”選項,如下圖。

  選擇該選項後,點擊“ Next ”按鈕,然後按照下圖選擇相應的 xsd 文件,並點擊" Next "按鈕。

  然後根據下圖進行操作,一句一句的描述實在太繁瑣了,看圖吧。將圖中“ javaee ”的內容刪掉,這是 web.xml 文件中命名空間的一個首碼,它不需要。為什麼不需要呢?很多書上介紹 web.xml 文件時根本沒有這個首碼,但是 STS 生成的 web.xml 文件中是有的,按照書上的配置的話,就需要人為的在添加這個首碼了。這就是我剛開始配置的時候比較鬱悶的地方,後來自己發現了這個步驟。

  刪除以後點擊“ Finish ”按鈕,這時我們的 web.xml 文件就生成,內容如下:

1 <?xml version="1.0" encoding="UTF-8"?>
2 <web-app version="3.1" xmlns="http://xmlns.jcp.org/xml/ns/javaee"
3     xmlns:xml="http://www.w3.org/XML/1998/namespace" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4     xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee 
5     http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd ">
6 </web-app>

  看到了麽,版本成為 3.1 了。

 

  OK,基本上到了這裡 STS 建立的 Maven 項目的一些坑就都解決了,自己試試吧!


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • body{ font family: SimSun,PingFang SC; } ubuntu搭建nodejs生產環境——快速部署手冊 為什麼不用CentOS而用Ubuntu作為生產環境的運行平臺?這個我也比較好奇,公司訂的只能沿用傳統,從使用成本的角度來說,此舉也是值得肯定的。 測試環境 騰訊雲 ...
  • 本書是Eric Evans對他自己寫的《領域驅動設計-軟體核心複雜性應對之道》的一本字典式的參考書,可用於快速查找《領域驅動設計》中的諸多概念及其簡明解釋。 其它本系列其它文章地址: [譯文]Domain Driven Design Reference(一)—— 前言 [譯文]Domain Driv ...
  • 約定 還記得上版本的第二十四篇的約定嘛?現在出來履行啦~ 為什麼要重製? 之前寫的專欄都是按照心情寫的,在最初的時候筆者什麼都不懂,而且文章的發佈是按照很隨性的一個順序。結果就是說,大家都看完了,都還對框架沒有一個感覺,感覺很亂。而現在,經過兩年多的摸索,筆者已經對框架的體系有了一個瞭解,所以希望再 ...
  • Eclipse作為軟體開發的常用工具,被很多的人所歡迎,尤其是豐富的快捷鍵,可以極大的提高編碼的效率,下麵將常用的快捷鍵做了整理,便於大家學習和使用。 Eclipse常用快捷鍵 1代碼提示 Alt+/; 2代碼複製 ctrl+alt+方向鍵(上下) 複製快捷鍵 3單行註釋 方式一:ctr+/ 方式二 ...
  • 轉自:https://my.oschina.net/editorial-story/blog/1808757 本文是學習大型分散式網站架構的技術總結。對架構一個高性能、高可用、可伸縮及可擴展的分散式網站進行了概要性描述,並給出一個架構參考。文中一部分為讀書筆記,一部分是個人經驗總結,對大型分散式網站 ...
  • Java開源生鮮電商平臺-定時器,定時任務quartz的設計與架構(源碼可下載) 說明:任何業務有時候需要系統在某個定點的時刻執行某些任務,比如:凌晨2點統計昨天的報表,早上6點抽取用戶下單的佣金。 對於Java開源生鮮電商平臺而言,有定時推送客戶備貨,定時計算賣家今日的收益,定時提醒每日的提現金額 ...
  • 本文基於 jdk 1.8 。 CountDownLatch 的使用 "前面的文章" 中說到了 volatile 以及用 volatile 來實現自旋鎖,例如 java.util.concurrent.atomic 包下的工具類。但是 volatile 的使用場景畢竟有限,很多的情況下並不是適用,這個 ...
  • 譯者註:這是一篇很棒文章,使用有趣的敘述方式,從反面講解了作為一個優秀的 PHP 工程師,有哪些事情是你不能做的。請註意哦,此篇文章羅列的行為,都是你要儘量避免的。 隨著失業率越來越高,很多人意識到保全自己的工作是多麼的重要。那麼,什麼是保住自己工作,並讓自己無可替代的好方法呢?一個很簡單的事實是只 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...