1. 程式人生 > 其它 >02-idea整合maven建立普通java工程和we工程

02-idea整合maven建立普通java工程和we工程

1、idea中設定Maven

為了讓idea和maven聯合起來使用,需要在idea中設定

--idea自身是內建了maven,但是一般不使用內建,理由是使用內建maven修改maven設定時不方便
所以使用自己安裝的maven,來覆蓋idea中的預設設定。下面設定以讓idea指定自己安裝的maven位置資訊。
可以在兩個位置修改:
1、File->Settings:這個位置修改的是針對當前maven工程的設定
2、File->New Projects Settings->Setting For New Projects:在這個位置是針對以後新建的maven工程的設定
--兩個位置的設定是一樣的,只是前面進入的路口不一樣
第二個設定:
File->New Projects Settings->Setting For New Projects
-> Build, Execution, Deployment ->Build Tools->Maven(點開Maven)
Maven->Runner
設定其中的
VM Options(設定虛擬機器引數的):-DarchetypeCatalog=internal
--archetype翻譯為骨架,maven專案建立時預設聯網下載專案模板,非常慢,上面的設定表示使用內部的模板,不需要下載
JRE:選擇JDK1.8安裝路徑
在當前工程中設定Settings也是和上面一樣的

2、普通java工程整合maven

使用idea建立一個普通的maven的java工程

2.1 建立一個空工程,名為idea-maven

2.2 新增一個模組Module

2. 3 選擇Maven,選擇完畢後下一步

選擇Maven選項,其中我們勾選使用模板,所陳列的都是不同種類的模板,不同模板生成的專案都有其對應的目錄結構和常用檔案,我們要做什麼專案就選擇什麼模板,生成的專案目錄檔案就非常的適合該專案開發

2.4 編寫專案資訊,下一步

Parent:不繼承其他專案就不填
Name:填寫專案名字  
Location:一般不做改動
Artifact Coordinattes:專案的座標三要素,按要求填寫

2.5 選擇maven的配置資訊

發現預設的還是idea內建的,前面在Settings中配置的沒起作用,可能是建立的是空工程的原因

2.6 建立成功瀏覽專案結構,新增模板不足的缺少檔案

發現所選擇的模板並沒有建立resources目錄,那麼我們自己在main和test目錄下分別新建一個resources
--注意:
	maven專案中的根據檔案目錄中儲存檔案的不同,分為不同種目錄:
	Sources Root:代表存放的是主程式的java檔案
	Test Sources Root:表示存放的是測試程式的java檔案
	Resources Root:代表存放的是主程式的java檔案所需的配置資原始檔
	Test Resources Root:代表存放的是測試程式的java檔案所需的配置資原始檔
修改檔案目錄型別:右鍵檔案目錄->Mark Directory as->選擇相應型別

2.7 檢視pom檔案

2.8 進行單元測試

刪掉主程式和測試程式包下的兩個原始java類,src\main\com\studymyself下新建 HelloMaven.java
package com.studymyself;

public class HelloMaven {
    
    public int add(int a,int b){
        
        return a+b;
        
    }
    
}

src\test\com\studymyself下新建 TestHelloMaven.java
package com.studymyself;

import org.junit.Assert;
import org.junit.Test;

public class TestHelloMaven {
    
    @Test
    public void testAdd1(){

        System.out.println("測試1:測試方法add,執行testAdd");
        
        HelloMaven helloMaven = new HelloMaven();
        
        int res = helloMaven.add(10,20);

        Assert.assertEquals(30,res);
        
    }

    @Test
    public void testAdd2(){

        System.out.println("測試2:測試方法add,執行testAdd2");

        HelloMaven helloMaven = new HelloMaven();

        int res = helloMaven.add(10,20);

        Assert.assertEquals(30,res);

    }
    
}

點選方法前面的執行三角執行該測試方法

2.9 點選右邊的Maven選項,彈出Maven視窗

在maven視窗中我們可以執行各種操作,我們點選其中的編譯或者打包時,其彈出的控制檯是使用的maven自身的而非idea的,在idea中我們設定的都是UTF-8編碼,所以檔案都是UTF-8,而我們知道大陸下載的maven構建專案預設是以GBK的形式,所以雙擊test的時候控制檯輸出的測試語句中文出現亂碼。
--還有就是目錄結構上方的設定齒輪按鈕中Show Exclude Files需要打上勾,才會顯示生成的target目錄

3、web工程整合maven

3.1 在工程idea-maven中新增新模組,選擇maven,其中勾選模板是maven-archetype-webapp

3.2 不繼承專案,專案名字idea-maven-javaweb

3.3 檢查maven設定是否有誤,無誤finish,有就改好

3.4 建立好後完整目錄如下

發現main中並沒有java原始檔夾,自己在main目錄下建立java,然後定義為原始檔夾Sources Root;再建立一個resources資料夾定義為源資原始檔夾Resources Root
如果以後還需要測試的話,再在src下新建test,然後建立java和resources,各自定義相應型別。

然後刪掉jsp檔案,新建一個index.html檔案
完整的maven的web專案結構如下:

3.5 開啟pom檔案

可以看到由於新增的模板不同,是web專案,所以打包被定義為打成war包。
下面的與之前普通java專案的一樣。

3.6 新增Tomcat容器

在maven專案中就不需要在Structure Projects中的Dependencies中選擇Tomcat的jar包了,直接在中央倉庫搜尋Tomcat,找對應版本的座標依賴程式碼貼上到pom檔案中的依賴標籤中就行了,因為搜尋出來的很多,不知道哪一個,就直接百度對應部落格,出來的更準確。
<!--下面這個是錯誤的-->
<dependency>
    <groupId>org.apache.tomcat</groupId>
    <artifactId>tomcat-catalina</artifactId>
    <version>9.0.41</version>
</dependency>
<!--這個才是正確的-->
<dependency>
    <groupId>org.apache.tomcat</groupId>
    <artifactId>tomcat-servlet-api</artifactId>
    <version>9.0.41</version>
</dependency>
新增進去後,發現版本號是紅的,說明沒有重新整理pom檔案載入對應依賴,點選maven出現maven視窗,重新整理Reload所有maven工程,如果倉庫有的話就可以載入進專案中了,沒有就到預設的映象網址中下載。還有一種方法就是修改了 maven 依賴以後,當前 pom 檔案的右上角會出現一個 maven 的小圖示,點一下就可以更新依賴了。或者快捷鍵:Ctrl + Shift + O

新增完web容器依賴後,配置選擇容器
Edit Configurations->加號+->Tomcat Server->Local->點選下邊Warning右邊的fix,選擇帶有explode的專案
或者這樣新增部署專案 Local->Deployment->右邊加號->Artifacts->選擇帶有explode的專案

3.7 在index.html中編寫一個超連結,連線到一個Servlet資源類

新建一個Servlet資源類com.studymyself.controller.HelloServlet
package com.studymyself.controller;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

public class HelloServlet extends HttpServlet {

    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        response.setContentType("test/html;charset=utf-8");

        response.getWriter().print("大家好,這是一個使用Maven構建工具建立的web專案");

    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

    }
}

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Welcome Page</title>
</head>
<body>
    <h1>歡迎光臨!</h1>
    <a href="/idea-maven-web/helloMaven">點選進入</a>
</body>
</html>
我們在maven視窗開啟該web專案的生命週期,雙擊package,maven幫我們將專案打包成一個war包:
	idea-maven-javaweb.war,我們從硬碟中將該war檔案,改名為myweb.war,放進Tomcat目錄中的webapps目錄中,然後在命令視窗setup啟動伺服器,這樣這個專案就開始發揮功能了,我們在瀏覽器中輸入http://localhost:8080/myweb/回車,就能到該專案的歡迎頁面了。這個war包就是我們的最終成品,交給客戶的。
--匯入maven專案模組
	File->New->Module From Existing Sources->選擇專案,ok->選擇Import module from external model,選擇Maven專案,ok->Apply
	也可以在Project Structure的ProjectSettings的Modules中點選加號選擇新建還是匯入,匯入後選中專案,在右邊的Dependencies屬性中選擇Module SDK為JDK1.8,然後應用。