版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、Maven Web項(xiàng)目部署到Tomcat 本文標(biāo)簽:MavenJava通過(guò)Maven來(lái)搭建項(xiàng)目是越來(lái)越多人的選擇,我也就湊了一下熱鬧,用maven來(lái)搭建了項(xiàng)目,發(fā)現(xiàn)還挺好用,但是也遇到了很多問(wèn)題,下面記錄一下Web項(xiàng)目部署到Tomcat下的問(wèn)題 。1、普通的WEB項(xiàng)目,就是雖然是用maven搭建的,但是沒(méi)有使用profiles.xml文件來(lái)配置參數(shù) 。這樣的項(xiàng)目可以通過(guò)以下的方式進(jìn)行部署:直接mvn clean package -DskipTests,進(jìn)行打包,1) 然后在可以把war包拷到tomcat目錄下的Webapp目錄下2)修改tomcat目錄下的conf目錄下的server.xml文
2、件,在Host標(biāo)簽之間添加如下一句話:<Context docBase="D:IdeaProjectsTestexampleexample-webtargetexample- web" reloadable="false" path=""/> 2、使用profiles.xml配置了默認(rèn)參數(shù),而在web的配置文件中使用到了這些參數(shù),這個(gè)時(shí)候使用命令打包的時(shí)候要指定你要使用哪一個(gè)profiles id來(lái)裝配你的項(xiàng)目,命令如下mvn clean package -P development ,其中-p是指啟用哪一個(gè)profile
3、s id 。然后下面部署到tomcat的方法和上面的就一樣了使用maven的話推薦一個(gè)IDE工具 Intellij IDEA,他可以直接通過(guò)視圖話的方式進(jìn)行指定profiles id 。下面轉(zhuǎn)一篇文章,講profile的Profiles是maven的一個(gè)很關(guān)鍵的術(shù)語(yǔ):profile是用來(lái)定義一些在build lifecycle中使用的environmental variations,profile可以設(shè)置成在不同的環(huán)境下激活不同的profile(例如:不同的OS激活不同的profile,不同的JVM激活不同的profile,不同的dabase激活不同的profile等等) 。定義Profile
4、s你可以把profiles定義在4個(gè)地方:1、%M2_HOME%/conf/settings.xml,這是針對(duì)該部電腦的所有user的profiles,是global profiles,它會(huì)影響所有的maven project build2、/.m2/settings.xml,這是針對(duì)per user的profiles,是user級(jí)的profiles,它會(huì)影響當(dāng)前user的所有maven project build3、定義在pom.xml文件里面,這是僅針對(duì)該project的profiles,是project級(jí)的profiles4、profiles.xml,它和pom.xml在同一個(gè)目錄下,也
5、是project級(jí)的profiles,使用profiles.xml的目的是希望把profiles的設(shè)置從pom.xml里抽離出來(lái)設(shè)置 。定義在這4個(gè)地方的profiles中,涉及范圍越窄的profiles會(huì)覆蓋范圍越寬的profiles 。即:定義在pom.xml里profiles會(huì)覆蓋profiles.xml的,profiles.xml的會(huì)覆蓋/.m2/settings.xml的,/.m2/settings.xml的會(huì)覆蓋%M2_HOME%/conf/settings.xml的 。不過(guò)請(qǐng)注意:設(shè)置在pom.xml里的profiles是最最推薦的,因?yàn)閜om.xml會(huì)被deploy到repos
6、itory里,所以pom.xml里的profiles才會(huì)available for subsequent builds originating from the repository or as transitive dependencies 。而settings.xml和profiles.xml里定義的profiles不會(huì)被deploy到repository,則有諸多限制,因此,只有下面幾個(gè)profiles能夠在settings.xml和profiles.xml里定義:repositoriespluginRepositoriesproperties 其他類型的profiles必須在pom.x
7、ml里定義(上面3個(gè)profiles也可以在pom.xml里定義) 。Pom.xml能夠定義的profiles包括:<repositories> (not actually available in the main POM, but used behind the scenes) a subset of the element, which consists of: 2、激活Profiles激活profiles有下列幾種方式:ExplicitlyThrough Maven settingsBased on environment variablesOS settingsPrese
8、nt or missing files1)通過(guò)mvn命令的-P參數(shù)來(lái)顯示激活profiles,該參數(shù)值是profile id list(之間用逗號(hào)連接) 。如:mvn groupId:artifactId:goal -P profileId-1,profileId-2 2) 通過(guò)在settings.xml里設(shè)置 element來(lái)激活(當(dāng)然也必須在settings.xml里定義)<settings> . <profiles> <profile> <id>profile1id> . profile> profiles> <ac
9、tiveProfiles> <activeProfile>profile-1activeProfile> activeProfiles> . settings> 列在里的profiles list會(huì)在每一個(gè)project執(zhí)行時(shí)被激活3)Profiles還可以基于detect到的build environment 的state來(lái)自動(dòng)激活,而不需要象上面2種方式顯式激活 。這只需要在profile定義時(shí)使用 element 。如:<profiles> <profile> <activation> <jdk>1.4j
10、dk> activation> . profile> profiles> 上面的代碼表示:如果JDK version start with 1.4 (eg. "1.4.0_08", "1.4.2_07", "1.4"),該profile會(huì)被激活<profiles> <profile> <activation> <property> <name>debugname> property> activation> . profile>
11、 profiles> 上面的代碼表示:如果存在system propertie “debug”,該profile會(huì)被激活 。為了激活它,輸入的命令類似于:mvn groupId:artifactId:goal Ddebug <profiles> <profile> <activation> <property> <name>environmentname> <value>testvalue> property> activation> . profile> profiles> 上面
12、的代碼表示:如果存在system propertie “environment”的值為test,該profile會(huì)被激活 。為了激活它,輸入的命令類似于:mvn groupId:artifactId:goal -Denvironment=test 4)Profiles還可以基于OS setting來(lái)自動(dòng)激活<profiles> <profile> <activation> <os> <name>Windows XPname> <family>Windowsfamily> <arch>x86arch&
13、gt; <version>5.1.2600version> os> activation> . profile> profiles> 上面的代碼表示:如果OS為windows xp,該profile會(huì)被激活5)根據(jù)某個(gè)file不存在而激活profile 。例如下面定義的profile是在target/generated-sources/axistools/wsdl2java/org/apache/maven不存在時(shí)激活<profiles> <profile> <activation> <file> <
14、;missing>target/generated-sources/axistools/wsdl2java/org/apache/mavenmissing> file> activation> . profile> profiles> 使用Profiles時(shí)要注意的2個(gè)問(wèn)題第一、external properties不是定義在pom.xml里的properties都稱為external properties 。舉例說(shuō)明最明了:pom.xml:<project> . <build> <plugins> <plugin&
15、gt; <groupId>org.myco.pluginsgroupId> <artifactId>spiffy-integrationTest-pluginartifactId> <version>1.0version> <configuration> <appserverHome>$appserver.homeappserverHome> configuration> plugin> . plugins> build> . project> '/.m2/settings
16、.xml<settings> . <profiles> <profile> <id>appserverConfigid> <properties> <appserver.home>/path/to/appserverappserver.home> properties> profile> profiles> <activeProfiles> <activeProfile>appserverConfigactiveProfile> activeProfiles>
17、; . settings> 當(dāng)你執(zhí)行該pom時(shí),運(yùn)行正常 。但如果another user執(zhí)行時(shí),則運(yùn)行失敗,因?yàn)闊o(wú)法解析$appserver.home(這是由于該properties是定義在user級(jí)別的settings.xml) 。解決方法就是把該profile放到pom.xml里定義,但這樣做的缺點(diǎn)是所有使用該profile的pom.xml每個(gè)都要定義一次該profile 。最好的解決方法是:Since Maven provides good support for project inheritance, its possible to stick this sort of co
18、nfiguration in the pluginManagement section of a team-level POM or similar, and simply inherit the paths第二、pom.xml里定義的profiles不符合激活條件依然是舉個(gè)例子:pom.xml:<project> . <profiles> <profile> <id>appserverConfig-devid> <activation> <property> <name>envname> <
19、value>devvalue> property> activation> <properties> <appserver.home>/path/to/dev/appserverappserver.home> properties> profile> <profile> <id>appserverConfig-dev-2id> <activation> <property> <name>envname> <value>dev-2value>
20、 property> activation> <properties> <appserver.home>/path/to/dev/appserver2appserver.home> properties> profile> profiles> <build> <plugins> <plugin> <groupId>org.myco.pluginsgroupId> <artifactId>spiffy-integrationTest-pluginartifactId>
21、; <version>1.0version> <configuration> <appserverHome>$appserver.homeappserverHome> configuration> plugin> . plugins> build> . project> 上面定義的pom.xml定義了兩個(gè)profile:不同的”env”參數(shù)值會(huì)激活不同的profile 。當(dāng)執(zhí)行命令:mvn -Denv=dev-2 integration-test 就會(huì)激活profile “appserverConfig-dev-2”當(dāng)執(zhí)行命令
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 校友會(huì)與校企合作
- 2024葡萄酒年份酒經(jīng)銷商銷售數(shù)據(jù)分析與合同3篇
- 2025年度智能倉(cāng)儲(chǔ)與車位買賣合同模板4篇
- 二零二五版酒店客房衛(wèi)生間防水處理與瓷磚粘貼合同2篇
- 2025年綠色生態(tài)住宅區(qū)物業(yè)管理招投標(biāo)及執(zhí)行合同3篇
- 學(xué)校的發(fā)展戰(zhàn)略和規(guī)劃
- 2025年度物流車輛安全責(zé)任合同協(xié)議書4篇
- 2025年度長(zhǎng)途客運(yùn)大巴租賃合同范本4篇
- 2024年08月中國(guó)光大銀行蘇州分行互聯(lián)網(wǎng)業(yè)務(wù)產(chǎn)品經(jīng)理崗招聘1人筆試歷年參考題庫(kù)附帶答案詳解
- 2024石斛花卉種植基地環(huán)保改造與采購(gòu)合同3篇
- 搖臂鉆床日常點(diǎn)檢表
- 經(jīng)濟(jì)開(kāi)發(fā)區(qū)擴(kuò)區(qū)可行性研究報(bào)告
- 會(huì)計(jì)職業(yè)道德課件(完整版)
- 金屬探測(cè)器檢查記錄表
- 2022年五年級(jí)數(shù)學(xué)興趣小組活動(dòng)記錄
- Q∕GDW 12127-2021 低壓開(kāi)關(guān)柜技術(shù)規(guī)范
- 商品房預(yù)售合同登記備案表
- 版式設(shè)計(jì)發(fā)展歷程-ppt課件
- 通信機(jī)房蓄電池放電試驗(yàn)報(bào)告
- 病原細(xì)菌的分離培養(yǎng)
- EDA課程設(shè)計(jì)報(bào)告書--八音電子琴
評(píng)論
0/150
提交評(píng)論