1. 程式人生 > >maven的理解認識------練習版、面試版

maven的理解認識------練習版、面試版

maven是什麼?

[百度百科]   Maven是基於專案物件模型(POM project object model),可以通過一小段描述資訊(配置)來管理專案的構建,報告和文件的軟體專案管理工具

用人話說:  Maven是一個專案管理工具,它的核心功能便是合理敘述專案間的依賴關係,

通俗點講,就是通過pom.xml檔案的配置獲取jar包,而不用手動去新增jar包,而這裡pom.xml檔案對於學了一點maven的人來說,就有些熟悉了,怎麼通過pom.xml的配置就可以獲取到jar包呢?pom.xml配置檔案從何而來?等等類似問題我們需要搞清楚,如果需要使用pom.xml來獲取jar包,那麼首先該專案就必須為maven專案,maven專案可以這樣去想,就是在java專案和web專案的上面包裹了一層maven,本質上java專案還是java專案,web專案還是web專案,但是包裹了maven之後,就可以使用maven提供的一些功能了(通過pom.xml新增jar包)。

Maven的基本原理很簡單,採用遠端倉庫和本地倉庫以及一個核心的配置檔案pom.xml,pom.xml中定義的jar檔案從遠端倉庫下載到本地倉庫,各個專案使用同一個本地倉庫的jar,同一個版本的jar只需下載一次,而且避免每個應用都去拷貝jar。同時它採用了現在流行的外掛體系架構,所以maven的核心非常的小,只有幾兆大小的檔案,在執行maven任務時,才會自動下載需要的外掛。

manven常見的配置有哪些?

pom.xml基礎配置:

    <properties>  
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>  
        <spring.framework.version>3.0.5.RELEASE</spring.framework.version>  
        <cxf.version>2.3.2</cxf.version>  
        <tiles.version>2.2.2</tiles.version>  
    </properties>  

如果我需要讓整個專案統一字符集編碼

<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

如果我需要讓spring統一版本號

<spring.framework.version>3.0.5.RELEASE</spring.framework.version>

當然,maven不會那麼乖乖的自動識別這些配置。

當然,<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

預設還是可以識別的! 

外掛配置: 

資源配置外掛:

<plugin>  
        <groupId>org.apache.maven.plugins</groupId>  
        <artifactId>maven-resources-plugin</artifactId>  
        <version>2.4.3</version>  
        <configuration>  
            <encoding>${project.build.sourceEncoding}</encoding>  
        </configuration>  
 </plugin>

如果你用eclipse建立maven專案時,新建的專案往往JDK版本很低——1.5!怎麼辦?修改settings.xml檔案

<profile>  
        <id>jdk-1.6</id>  
        <activation>  
            <activeByDefault>true</activeByDefault>  
            <jdk>1.6</jdk>  
        </activation>  
        <properties>  
            <maven.compiler.source>1.6</maven.compiler.source>  
            <maven.compiler.target>1.6</maven.compiler.target>  
            <maven.compiler.compilerVersion>1.6</maven.compiler.compilerVersion>  
        </properties>  
</profile>

eclipse會很聽話的構建一個JDK1.6版本的maven專案!

<dependencies>
    <dependency>
        <groupId>org.mybatis</groupId>
        <artifactId>mybatis</artifactId>
        <version>3.2.5</version>
    </dependency>
</dependencies>

之前有說過groupId、artifactId、version唯一標識一個Maven專案,有了這三個元素,我們就可以去遠端倉庫下載。

下面是一個典型的pom.xml:

<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>org.keplerproject</groupId>
	<artifactId>luajava</artifactId>
	<version>1.1</version>
	<packaging>jar</packaging>
 
	<name>luajava</name>
	<url>http://maven.apache.org</url>
 
	<properties>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
	</properties>
	<build>
		<plugins>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-compiler-plugin</artifactId>
				<version>2.0.2</version>
				<configuration>
					<source>1.7</source>
					<target>1.7</target>
				</configuration>
			</plugin>
		</plugins>
	</build>
	<dependencies>
		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<version>3.8.1</version>
			<scope>test</scope>
		</dependency>
	</dependencies>
</project>

更詳細配置可參考:

相關推薦

maven理解認識------練習面試

maven是什麼? [百度百科]   Maven是基於專案物件模型(POM project object model),可以通過一小段描述資訊(配置)來管理專案的構建,報告和文件的軟體專案管理工具 用人話說:  Maven是一個專案管理工具,它的核心功能便是合理敘述專

在 Windows 10 專業企業或教育上設置展臺

change 次數 桌面 nes launcher 展開 新建 -c 企業 原文: 在 Windows 10 專業版、企業版或教育版上設置展臺 Set up a kiosk on Windows 10 Pro, Enterprise, or Education 適用於

Bootstrap3基礎 nav 便簽頁(橫)

學習資源 lin wid image studio contain con 屏幕 doctype 禮悟:   公恒學思合行悟,尊師重道存感恩。葉見尋根三返一,江河湖海同一體。 虛懷若谷良心主,願行無悔給最苦。讀書鍛煉養身心,誠勸且行且珍惜。

軟體或jar包版本的小知識---BetaFinalFree

對於各種軟體或jar包,其後面總有不同的“尾巴”,如: 等,剛開始接觸的肯定有些不知道。那麼他們到底代表什麼意思呢?   0.Release:釋出版 1.Beta版:產品釋出之前的測試版, 2.Free版:免費版 3.Full版:完全版 4.Final版:正式版 5.Pr

solr單機叢集整合spring

一、引言 今個起個大早,陽光依舊耀眼,趕緊把solr剩下未完成的結束掉。solr單機版、叢集版咱們都已經搭建好了,之前solr單機版也使用java中的solrj來維護索引庫,那麼今天講下solr叢集版

將win10家庭教育系統啟用為win10專業

1.首先,我們先檢視一下Win10正式專業版系統的啟用狀態: 點選桌面左下角的“Windows”按鈕,從開啟的擴充套件面板中依次點選“設定”-“更新和安全”,並切換到“啟用”選項卡,在此就可以檢視到當前系統的啟用狀態。 2.接下來在桌面左下角的“cortana”搜尋框中輸

win10專業家庭 credssp 加密 oracle 修正 連線伺服器報錯

遠端桌面使用的是“憑據安全支援提供程式協議 (CredSSP) ”,這個協議在未修補的版本中是存在漏洞的。 於是微軟在 2018 年 3 月 13 日在補丁中解決了這個問題,但是預設並沒有強制使用新的協議,因為一旦強制使用,假如伺服器端和客戶端不匹配,將無法連線。所

比較 Windows 10 家庭專業企業和教育

win10主要版本為家庭版、專業版、企業版、教育版和移動版等。 家庭版最為簡介,適合最基礎的個人使用者,完全能夠滿足一般日常辦公學習、影音娛樂遊戲等; 專業版是家庭版的升級版,比家庭版多瞭如下功能(

【轉】alphabetarc的意思

很多軟體在正式釋出前都會發布一些預覽版或者測試版,一般都叫“beta版”或者 “rc版”,特別是開源軟體,甚至有“alpha版”,下面來解釋一下各個版本的意思。alpha版:內部測試版。α是希臘字母的第一個,表示最早的版本,一般使用者不要下載這個版本,這個版本包含很多BU

二階切比雪夫多項式實現(scalapython

一維二階切比雪夫多項式和二維二階切比雪夫多項式 scala版參考: http://hxfcalf.blog.163.com/blog/static/21575548201373124214412 http://hxfcalf.blog.163.com/blog/static

QQ輕聊TIM無法修改個人資料夾位置的解決方法

QQ輕聊版、TIM版均有這個BUG:如果電腦上之前沒有安裝過QQ完整版(比如我新裝的虛擬機器),那麼QQ輕聊版、TIM版裡面,設定修改個人資料夾位置將無法生效。在QQ輕聊版、TIM版設定介面修改個人資料夾位置後,會提示轉移資料檔案,之後會重啟輕聊版/TIM,但重啟後的登入介

hibernate 級聯刪除策略(註解資料庫)

資料庫中的表一般都是相互關聯的,它們通過foreign key產生關係。 定義foreign key約束時可以指定三種引用行為:delete cascade、delete set null、delete no action,預設是delete on action。它們的含義

GCC 64位程式的makefile條件編譯心得——32位與64位debug與release(相容MinGWTDM-GCC)

  為了適應現在越來越流行的64位系統,經常需要將程式碼分別編譯為32位版和64位版。其次,除了需要生成debug版用於開發測試外,還需要生成release版用於釋出。本文介紹瞭如何利用makefile條件編譯來生成這些版本,而且不僅相容Linux下的GCC,還支援MinGW、TDM-GCC等Windows

Oracle企業標準及其他版本的異同

針對不同的開發和部署環境,Oracle公司將同一系列Oracle資料庫分成四個版本:標準版 One (Standard Edition One)、標準版(Standard Edition)、企業版(Enterprise Edition)和個人版(Personal Editi

【安裝】Windows下 TensorFlow 的安裝(包含:CUPGPUCUDAcuDNN)——最後更新日期 2018-05-30

____tz_zs您可以直接使用pip安裝tensorflow,只需一行程式碼就安裝好了。cpu版:pip3 install --upgrade tensorflow·gpu版:pip3 install --upgrade tensorflow-gpu·但是,推薦您使用Ana

discuz教程:電腦手機去除標題title中的Powered by Discuz!

Discuz! X3.2電腦版、手機版預設模板去除標題title中的Powered by Discuz!的方法 電腦版: 開啟 /template/default/common/header_common.htm 檔案 找到<title><!--{if !empty($navtitle)}-

深入理解計算機系統(第三練習2.15

練習題 2.15 只使用位級和邏輯運算,編寫一個C表示式,他等價於x==y。換句話說,當x和y相等時他將返回1,否則返回0 因為 x ^ y 只會在x == y時為0,所以我們可以利用這一性質得到這個

子母頁面之間的關系

default viewbag 分享 mps pad jquery err sel brush 母版頁和子母版頁,功能的頁面之間的關系,在不同功能的頁面怎麽進行差異化管理樣式和腳本,提高頁面的響應速度,使頁面更加簡潔。 頁面布局的結構圖: 一、子母版頁_Edit

正宗Djiango框架(Bootstrap Django母Cookie)

rom html 配置 signed -- obj https tick 發送 一. Bootstrap 一個包含CSS和JS的一個代碼庫   -- 樣式   -- 響應式 @media關鍵字     --導航條 @media(nin-width:768px){

速讀《深入理解計算機系統(第三)》問題及解決

情況 csdn 第六章 填充 以及 函數 順序 時鐘 管理所 第一章 計算機漫遊 P13:用戶棧和運行時堆有什麽區別?數據結構中經常說堆棧,這裏的堆和棧一樣嗎?和操作系統的堆、棧有什麽區別? 參考:堆和棧的區別(內存和數據結構) 操作系統: 棧:由操作系統自動分配釋放