Maven01——簡介、安裝配置、入門程式、項目構建和依賴管理

来源:http://www.cnblogs.com/xieyupeng/archive/2017/09/10/7500574.html
-Advertisement-
Play Games

1 Maven的簡介 是apache下的一個開源項目,是純java開發,並且只是用來管理java項目的 Svn eclipse maven量級 同一個項目,普通的傳統項目(24M)而Maven項目只需要(724KB) 分析:maven項目為什麼這麼小?沒有jar。 需要jar嗎?肯定需要。沒有存在於 ...


Maven的簡介

1.1 什麼是maven

 apache下的一個開源項目,是純java開發,並且只是用來管理java項目的

 Svn eclipse   maven量級

1.2 Maven好處

同一個項目,普通的傳統項目(24M)而Maven項目只需要(724KB)

 

分析:maven項目為什麼這麼小?沒有jar。 需要jar嗎?肯定需要。沒有存在於maven項目裡面,jar存在於哪?

 

1.3 依賴管理

1.4 項目一鍵構建

編碼  編譯  測試(junit)  運行  打包  部署

一個 tomcat:run就能把項目運行起來

 

Maven能幹的事:

編譯  測試(junit)  運行  打包  部署

 

1.5 小結:

Maven的好處:

1.5.1 依賴管理

 就是對jar包的統一管理  可以節省空間

1.5.2 一鍵構建

1.5.3 可以跨平臺

1.5.4 應用於大型項目 可以提高開發效率

分析:

用戶管理    訂單管理   支付管理   。。。。。

Maven的分模塊開發

互聯網項目 按業務分

傳統項目   按層分 entity  dao  service  web

Maven的安裝配置

2.1 下載安裝

 

 

直接解壓到一個沒有中文沒有空格的文件夾里解壓後的目錄如下:

 

Maven軟體的核心文件:

 

 

2.2 Maven環境變數配置

1、 要配置jdk,  maven3.3.9這個版本所需的jdk版本必須要1.7以上

2、 最終要運行的是maven軟體中bin目錄的mvn命令

所以要配置maven的環境變數

在系統變數添加

環境變數的名稱:MAVEN_HOME

變數值:就是maven軟甲解壓的目錄F:\class32\apache-maven-3.3.9

 

 

3、把MAVEN_HOME添加到path

 

 

4、驗證maven是否配置成功:

打開dos視窗 輸入: mvn v

 

2.3 Maven倉庫

三種倉庫

1、本地倉庫 自己維護

 

本地倉庫的配置只需要修改settings.xml文件就可以

 

2、遠程倉庫(私服) 公司維護

3、中央倉庫 maven團隊維護     兩個億

 

三種倉庫的關係如下:

 

 

演示入門程式

3.1 Maven的目錄結構 

 

3.2 Maven的常用命令

Clean   清理編譯的文件

 

Compile 編譯了主目錄的文件

 

Test  編譯並運行了test目錄的代碼

 

Package 打包 

 

Install 就是把項目發佈到本地倉庫

 

Tomcatrun  一鍵啟動

 

3.3 Maven的生命周期(瞭解)

Compile   test  package  install  deploy(發佈到私服)

三種生命周期

 

Clean生命周期

 Clean

Default生命周期

Compile   test  package  install  deploy

Site生命周期

 Site

 

3.4 命令和生命周期的階段的關係

不同的生命周期的命令可以同時執行

Mvn clean package

 

項目構建

M2e插件的安裝

 

Maveneclipse的配置

1、選擇3.3.9版本的maven軟體

 

2、修改預設的本地倉庫地址

 

項目構建

1、 新建maven項目

 

2、調過骨架,如果不跳過骨架選擇創建出的項目目錄是不全的

 

2、 填寫坐標

 

 

3、創建工程

 

4、處理紅色叉號

手動webapp文件夾下創建一個WEB-INF文件夾,在裡面放一個web.xml文件

 

 

5、處理編譯版本

pom.xml中添加如下代碼然後記得右鍵工程Maven UpdateProject

 

<build>
        <!-- 配置了很多插件 -->
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.5.1</version>  
                <configuration>
                    <source>1.7</source>
                    <target>1.7</target>
                    <encoding>UTF-8</encoding>
                </configuration>
            </plugin>
        </plugins>
</build>

 

5、創建一個servlet 

 

 

修改web.xml

刪除重覆的代碼

xmlns=http://java.sun.com/xml/ns/javaee 

 

 

添加jar

pom中添加如下代碼:

 

<dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.9</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>servlet-api</artifactId>
            <version>2.5</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>jsp-api</artifactId>
            <version>2.0</version>
            <scope>provided</scope>
        </dependency>
</dependencies>

 

會發現jar包已添加到項目中

 

啟動項目

右擊項目---run as maven build .

 

 

依賴管理

Jar包的管理

 

需求:整合struts2   頁面上傳一個客戶id 跳轉頁面

5.1 添加依賴:

打開maven倉庫的視圖:

 

 

5.2 重建索引

 

 

1、 創建maven項目(同上)

2、 跳過骨架(同上)

3、 填寫坐標信息(同上)

4、 添加web.xml文件(同上)

5、 修改編譯版本(同上)

6、 添加坐標 選擇Dependencies標簽 點擊add

 

 

7、 手動輸入要添加的坐標,選擇版本

 

 

8、 可以看到 pom.xml文件中多出瞭如下代碼

 

 

9、 同樣的方式添加servlet-api.jarjsp-api.jar 註意選擇scopeprovided

 

10、 action代碼

 

import com.opensymphony.xwork2.ActionSupport;
public class CutomerAction extends ActionSupport {
    private Long custId;
    public Long getCustId() {
        return custId;
    }
    public void setCustId(Long custId) {
        this.custId = custId;
    }
    public String findById(){
        
        return SUCCESS;
    }
    
}

 

11、 添加struts.xml文件放到resources目錄中

 

 

內容:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
    "http://struts.apache.org/dtds/struts-2.3.dtd">

<struts>
    <!-- 配置常量 -->
    <!-- 字元集 -->
    <constant name="struts.i18n.encoding" value="UTF-8"></constant>
    <!-- 開發模式 -->
    <constant name="struts.devMode" value="true"></constant>

    <!-- 通用package -->
    <package name="customer" namespace="/" extends="struts-default">

        <action name="find" class="cn.itcast.action.CutomerAction"    
            method="findById">
            <result name="success">/jsp/info.jsp</result>
        </action>

    </package>
</struts>

 

12、 添加jsp頁面

 

13、修改web.xml文件 添加過濾器

 

<filter>
    <filter-name>struts2</filter-name>
     <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
  </filter>
<filter-mapping>
  <filter-name>struts2</filter-name>
  <url-pattern>/*</url-pattern>
</filter-mapping>

 

5.3 依賴範圍需不需要提供

5.3.1 Compile  struts2-core

編譯(compile)時需要 測試時需要,,運行時需要,打包時需要

5.3.2 Provided  jsp-api.jar   servlet-api.jar

編譯(compile)時需要,測試(test)時也需要 ,運行時不需要,打包時不需要

因為tomcat伺服器裡面預設有,所以運行和打包都不需要

5.3.3 Runtime   資料庫驅動包

編譯時不需要,測試時需要,,運行時需要,打包時需要

5.3.4 Test  junit.jar

編譯時不需要,測試時需要,運行時不需要,打包也不需要

 

添加插件

Maven  add  plugin

 

如果用tomcat7運行用命令:

 

Tomcat7:run

 

 

 

常見問題:

Debug進不去,點擊添加如果無效

 

 

那麼就用下麵的方法:

 

 

下麵的情況重裝下jdk就行

 

 

最後說下概念模型:

 

 

 

插件寫在build裡面

 

機子裡面都可以不用安裝tomcat啦!!!

插件也是依賴也是jar



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

-Advertisement-
Play Games
更多相關文章
  • 本篇作為技術分享系列的第一篇,詳細講一下 SVG 的解析和繪製,這部分功能的研究和最終實現由團隊的 @黃超超 同學負責,感謝提供技術文檔和支持。 首先我們來看一下 SVG 的文件結構和組成 SVG (Scalable Vector Graphics) 是一種可縮放矢量圖形,使用 XML 格式來定義, ...
  • 開篇先來說一下寫這篇文章的初衷。 初到來畫,通讀了來畫 UWP App 的代碼,發現裡面確實有很多比較高深的技術點,同時也是有很多問題的,擴展性,耦合,性能,功能等等。於是我們決定從頭重構這個產品,做一個全新的 “來畫Pro” 出來,歷經三個月的世間,這個產品終於正式上架。 (做個小廣告,在 Win ...
  • 1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using System.Threading.Tasks; 6 7 8 namespace Wrox.Pro... ...
  • 上個月在網上看到一個用web實現簡單AR效果的文章,然後自己一路折騰,最後折騰出來一個 Asp.net+WebSocket+Emgucv實時人臉識別的東西,網上也有不少相關資料,有用winform的也有asp.net的。其實人臉識別技術早就成熟了,就是沒機會接觸這方面。百度了一下 找到好多,Jque ...
  • 本文主要介紹下運用docker虛擬技術打包Asp.net core應用。 Docker作為一個開源的應用容器引擎,近幾年得到廣泛的應用,使用Docker我們可以輕鬆實現應用的持續集成部署,一次打包,到處運行。 ...
  • step one:(找入口) using System.Reflection; //引用需要用到的命名空間 做任何事都要有開始的地方,不例外,反射也要先找到反射的入口,舉個慄子: Assembly assemble = Assembly.Load("SqlServer"); //反射的入口::動態的 ...
  • WebForm.aspx 頁面通過 AJAX 訪問WebForm.aspx.cs類中的方法,獲取數據 WebForm1.aspx 頁面 (原生AJAX請求,寫法一) WebForm1.aspx 頁面 (AJAX請求,寫法二,一般情況下我們用這種) WebForm1.aspx.cs 如果你是try.. ...
  • APM非同步編程模式最具代表性的特點是:一個非同步功能由以Begin開頭、End開頭的兩個方法組成。Begin開頭的方法表示啟動非同步功能的執行,End開頭的方法表示等待非同步功能執行結束並返回執行結果。 ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...