<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          理解 IntelliJ IDEA 的項目配置和 Web 部署

          共 2775字,需瀏覽 6分鐘

           ·

          2022-02-26 20:38

          作者:Dulk

          www.cnblogs.com/deng-cc/p/6416332.html

          大家好,我是寶哥


          1、項目配置的理解


          IDEA 中最重要的各種設(shè)置項,就是這個 Project Structre 了,關(guān)乎你的項目運行,缺胳膊少腿都不行。最近公司正好也是用之前自己比較熟悉的IDEA而不是Eclipse,為了更深入理解和使用,就找來各種資料再研究一下,這里整理后來個輸出。



          1.1 Project



          1. Project name:定義項目的名稱;

          2. Project SDK:設(shè)置該項目使用的JDK,也可以在此處新添加其他版本的JDK;

          3. Project language level:這個和JDK的類似,區(qū)別在于,假如你設(shè)置了JDK1.8,卻只用到1.6的特性,那么這里可以設(shè)置語言等級為1.6,這個是限定項目編譯檢查時最低要求的JDK特性;

          4. Project compiler output:項目中的默認編譯輸出總目錄,如圖黃色部分,實際上每個模塊可以自己設(shè)置特殊的輸出目錄(Modules - (project) - Paths - Use module compile output path),所以這個設(shè)置有點雞肋。


          1.2 Modules



          1.2.1 增刪子項目



          一個項目中可以有多個子項目,每個子項目相當(dāng)于一個模塊。一般我們項目只是單獨的一個,IntelliJ IDEA 默認也是單子項目的形式,所以只需要配置一個模塊。

          (此處的兩個項目引入僅作示例參考)


          1.2.2 子項目配置


          每個子項目都對應(yīng)了Sources、Paths、Dependencies 三大配置選項:


          1. Sources:顯示項目的目錄資源,那些是項目部署的時候需要的目錄,不同顏色代表不同的類型;

          2. Paths:可以指定項目的編譯輸出目錄,即項目類和測試類的編譯輸出地址(替換掉了Project的默認輸出地址)

          3. Dependencies:項目的依賴





          1.2.3 增刪框架(Web部署-1)


          每個子項目之下都可以定義它所使用的框架,這里重點說明一下Web部分的設(shè)置。



          1.3 Libraries


          這里可以顯示所添加的jar包,同時也可以添加jar包,并且可以把多個jar放在一個組里面,類似于jar包整理。


          這里默認將每個jar包做為了一個單獨的組(未測試,待定)。


          1.4 Facets


          官方的解釋是:

          When you select a framework (a facet) in the element selector pane, the settings for the framework are shown in the right-hand part of the dialog.


          (當(dāng)你在左邊選擇面板點擊某個技術(shù)框架,右邊將會顯示這個框架的一些設(shè)置)


          說實話,并沒有感覺到有什么作用。


          1.5 Artifacts(Web部署-2)


          項目的打包部署設(shè)置,這個是項目配置里面比較關(guān)鍵的地方,重點說一下。


          先理解下它的含義,來看看官方定義的artifacts:

          An artifact is an assembly of your project assets that you put together to test, deploy or distribute your software solution or its part. Examples are a collection of compiled Java classes or a Java application packaged in a Java archive, a Web application as a directory structure or a Web application archive, etc.


          即編譯后的Java類,Web資源等的整合,用以測試、部署等工作。再白話一點,就是說某個module要如何打包,例如war exploded、war、jar、ear等等這種打包形式。某個module有了 Artifacts 就可以部署到應(yīng)用服務(wù)器中了。


          jar:Java ARchive,通常用于聚合大量的Java類文件、相關(guān)的元數(shù)據(jù)和資源(文本、圖片等)文件到一個文件,以便分發(fā)Java平臺應(yīng)用軟件或庫;

          war:Web application ARchive,一種JAR文件,其中包含用來分發(fā)的JSP、Java Servlet、Java類、XML文件、標(biāo)簽庫、靜態(tài)網(wǎng)頁(HTML和相關(guān)文件),以及構(gòu)成Web應(yīng)用程序的其他資源;

          exploded:在這里你可以理解為展開,不壓縮的意思。也就是war、jar等產(chǎn)出物沒壓縮前的目錄結(jié)構(gòu)。建議在開發(fā)的時候使用這種模式,便于修改了文件的效果立刻顯現(xiàn)出來。


          默認情況下,IDEA的 Modules 和 Artifacts 的 output目錄已經(jīng)設(shè)置好了,不需要更改,打成war包的時候會自動在 WEB-INF目錄下生成classes,然后把編譯后的文件放進去。



          你可能對這里的輸出目錄不太理解,之前不是配置過了文件編譯的輸出目錄了嗎?為什么這里還有一個整合這些資源的目錄呢?它又做了哪些事呢? 


          其實,實際上,當(dāng)你點擊運行tomcat時,默認就開始做以下事情:


          • 編譯,IDEA在保存/自動保存后不會做編譯,不像Eclipse的保存即編譯,因此在運行server前會做一次編譯。編譯后class文件存放在指定的項目編譯輸出目錄下(見1.2.2);

          • 根據(jù)artifact中的設(shè)定對目錄結(jié)構(gòu)進行創(chuàng)建;

          • 拷貝web資源的根目錄下的所有文件到artifact的目錄下(見1.2.3);

          • 拷貝編譯輸出目錄下的classes目錄到artifact下的WEB-INF下(見1.2.2);

          • 拷貝lib目錄下所需的jar包到artifact下的WEB_INF下;

          • 運行server,運行成功后,如有需要,會自動打開瀏覽器訪問指定url。


          在這里還要注意的是,配置完成的artifact,需要在tomcat中進行添加:


          往期推薦

          騷操作:不重啟 JVM,如何替換掉已經(jīng)加載的類?

          國產(chǎn)Linux發(fā)行版再添一員,操作界面不輸蘋果!

          SpringCloud 微服務(wù)架構(gòu),適合接私活(附源碼)

          Redis主從復(fù)制、集群、持久化、事故調(diào)優(yōu)…你懂幾條?

          你還在 Docker 中跑 MySQL?恭喜你,可以下崗了!

          從零開始搭建公司搜索平臺架構(gòu)技術(shù)棧(基于 ElasticSearch),這套架構(gòu)絕了!

          瀏覽 20
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  91狠狠色丁香婷婷综合久久精品 | 无码人妻一区二区三区在线 | 一本色道久久综合亚洲精品苍井空 | 中文字幕色站 | 亚洲精品黄片 |