Maven的這三個(gè)用法你一定要會(huì)!-創(chuàng)新互聯(lián)

本文中將介紹maven的自定義插件(入門實(shí)戰(zhàn))自定義archeType模板(實(shí)戰(zhàn))按環(huán)境打包(實(shí)戰(zhàn))三個(gè)在游戲中常常需用的操作。

成都創(chuàng)新互聯(lián)公司堅(jiān)持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:網(wǎng)站制作、成都做網(wǎng)站、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時(shí)代的唐山網(wǎng)站設(shè)計(jì)、移動(dòng)媒體設(shè)計(jì)的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!

1、自定義archeType模板

1.1、什么是archeType

我們在創(chuàng)建maven項(xiàng)目的時(shí)候,你會(huì)發(fā)現(xiàn)有這么多的apache提供的模板。?

Maven的這三個(gè)用法你一定要會(huì)!

或者使用mvn archetype:generate命令來快速創(chuàng)建maven項(xiàng)目,也會(huì)有很多個(gè)選項(xiàng),讓你選擇模板序號。那每個(gè)模板之間有什么區(qū)別呢?

每個(gè)模板里其實(shí)就是附帶不同的依賴和插件。一般在公司游戲里都會(huì)有屬于本公司的一套archeType模板,里面有著調(diào)試好的項(xiàng)目用到的依賴包和版本號。

1.2、創(chuàng)建archetype

假如自己已經(jīng)有了一個(gè)maven項(xiàng)目,想給該項(xiàng)目創(chuàng)建一個(gè)archeType模板。

cd 到項(xiàng)目根目錄下執(zhí)行(pom.xml同級目錄)。

Maven的這三個(gè)用法你一定要會(huì)!

此時(shí)會(huì)在項(xiàng)目target下生成這些文件:

Maven的這三個(gè)用法你一定要會(huì)!

1.3、生成archetype模板

先 cdtarget/generated-sources/archetype/

然后執(zhí)行 mvn install

執(zhí)行成功后,執(zhí)行crawl命令,在本地倉庫的根目錄生成archetype-catalog.xml骨架配置文件:

mvnarchetype:crawl

Maven的這三個(gè)用法你一定要會(huì)!

來看一看它里面的內(nèi)容:

Maven的這三個(gè)用法你一定要會(huì)!

1.4、使用archetype模板

執(zhí)行mvn archetype:generate -DarchetypeCatalog=local從本地archeType模板中創(chuàng)建項(xiàng)目。

Maven的這三個(gè)用法你一定要會(huì)!

然后會(huì)讓你選擇模板序號和groupId?artifactId?version和package信息:

Maven的這三個(gè)用法你一定要會(huì)!

項(xiàng)目創(chuàng)建成功!

當(dāng)然,也可以使用IDEA來幫我們用圖形界面使用archeType模板創(chuàng)建項(xiàng)目:

Maven的這三個(gè)用法你一定要會(huì)!

Maven的這三個(gè)用法你一定要會(huì)!

Maven的這三個(gè)用法你一定要會(huì)!

后面的就與創(chuàng)建普通項(xiàng)目相同了,不做演示。

2、自定義插件

在這里我只是做了簡單的示例,更復(fù)雜的功能開發(fā)請參考mojo的API:

https://maven.apache.org/developers/mojo-api-specification.html

2.1、插件提供者

插件提供者項(xiàng)目結(jié)構(gòu):

Maven的這三個(gè)用法你一定要會(huì)!

2.1.1、修改packaging

Maven的這三個(gè)用法你一定要會(huì)!

2.1.2、修改pom

Maven的這三個(gè)用法你一定要會(huì)!

這兩個(gè)依賴是自定義插件必須的依賴,代表了它是一個(gè)Mojo工程,里面包含了一些Mojo的接口和抽象類以及注解。

2.1.3、coding業(yè)務(wù)邏輯

Maven的這三個(gè)用法你一定要會(huì)!

注意這里面的@Parameter?@Mojo?LifecyclePhase.PACKAGE都是org.apache.maven.plugins.annotations包下的:

Maven的這三個(gè)用法你一定要會(huì)!

@Parameter注解會(huì)獲取消費(fèi)者配置文件中的變量值并賦值。

defaultPhase =LifecyclePhase.PACKAGE聲明了該插件觸發(fā)的生命周期。

@Mojo定義插件的goal名字。

2.1.4、clean and install

執(zhí)行mvn clean install,在target目錄下會(huì)生成這樣一個(gè)jar包,這就是插件包。

Maven的這三個(gè)用法你一定要會(huì)!

2.2、插件消費(fèi)者

插件消費(fèi)者 : 項(xiàng)目結(jié)構(gòu)

Maven的這三個(gè)用法你一定要會(huì)!

2.2.1、修改pom

Maven的這三個(gè)用法你一定要會(huì)!

如果不加,我們只能通過執(zhí)行插件或者執(zhí)行命令的方式來執(zhí)行,如果想讓它在執(zhí)行package的時(shí)候自動(dòng)執(zhí)行,就需要設(shè)置該屬性,可以把它理解成hook。

2.2.2、如何傳遞參數(shù)給plugin

在插件提供者中,有個(gè)MyMojo的類,有這樣一段代碼:

Maven的這三個(gè)用法你一定要會(huì)!

它和你用過的spring注解一樣,也是用來以注解的形式獲取參數(shù)的值。

相對應(yīng)的,在插件消費(fèi)者的配置中我們就應(yīng)該相應(yīng)的給出參數(shù)的定義:

Maven的這三個(gè)用法你一定要會(huì)!

上面的配置與變量名一一對應(yīng)即可。這時(shí)候你會(huì)發(fā)現(xiàn)maven插件中自動(dòng)會(huì)添加一個(gè)plugins選項(xiàng):

Maven的這三個(gè)用法你一定要會(huì)!

執(zhí)行該插件:mvnmyprovide:fantj 或者直接點(diǎn)擊:

Maven的這三個(gè)用法你一定要會(huì)!

3、Profile按環(huán)境打包

在日常開發(fā)中,我們項(xiàng)目的開發(fā)環(huán)境和生產(chǎn)環(huán)境以及測試環(huán)境往往是不同的,比如:數(shù)據(jù)庫的url等。在項(xiàng)目上生產(chǎn)環(huán)境時(shí),就需要修改這些參數(shù),給開發(fā)造成不便。為了解決該問題,Maven 2.0引入了構(gòu)建配置文件的概念(build profiles)。

它能干什么呢?

假如你的生產(chǎn)環(huán)境和開發(fā)環(huán)境所需環(huán)境配置不同,生產(chǎn)環(huán)境配置文件是pro.properties,開發(fā)環(huán)境配置文件是dev.properties,那么用maven profile ,你可以實(shí)現(xiàn)打包開發(fā)環(huán)境jar包的時(shí)候只將dev.properties打包并使用,生產(chǎn)環(huán)境打包同理。

在哪里聲明呢?

它可以在每個(gè)項(xiàng)目的pom.xml文件中聲明,也可以在maven的用戶setting.xml下聲明,也可以在maven全局環(huán)境下設(shè)置setting.xml,詳情如下。

1.Per Project
Defined in the POM itself (pom.xml).

2.Per User
Defined in the Maven-settings(%USER_HOME%/.m2/settings.xml)

3.Global
Defined in the globalMaven-settings (${maven.home}/conf/settings.xml)

4.Profile descriptor
不支持3.0,詳情請看:

https://cwiki.apache.org/MAVEN/maven-3x-compatibility-notes.html#Maven3.xCompatibilityNotes-profiles.xml

雖然有這么多define的方式,但是我們一般使用的是第一種defined in the pom,因?yàn)椴灰姷妹總€(gè)項(xiàng)目的生產(chǎn)環(huán)境都一模一樣,當(dāng)然這個(gè)也是因個(gè)人情況而異。

實(shí)戰(zhàn)

3.1、項(xiàng)目結(jié)構(gòu)

Maven的這三個(gè)用法你一定要會(huì)!

3.2、pom.xml

Maven的這三個(gè)用法你一定要會(huì)!

3.3、三個(gè)application.properties

Maven的這三個(gè)用法你一定要會(huì)!

3.4、打包

Maven的這三個(gè)用法你一定要會(huì)!

Maven的這三個(gè)用法你一定要會(huì)!

可以看到只將pro/application.properties進(jìn)行了編譯。

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。

文章名稱:Maven的這三個(gè)用法你一定要會(huì)!-創(chuàng)新互聯(lián)
標(biāo)題鏈接:http://bm7419.com/article38/ddhppp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站設(shè)計(jì)、網(wǎng)站維護(hù)、網(wǎng)站策劃網(wǎng)站改版、商城網(wǎng)站面包屑導(dǎo)航

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

h5響應(yīng)式網(wǎng)站建設(shè)