轉(zhuǎn)自?https://www.cnblogs.com/baimiaolei/p/5627755.html 和?https://blog.csdn.net/baoxiaofeicsdn/article/details/58603959
float、position 和 display 之間的關(guān)系:
如果display的值為none,那么后兩者就不會(huì)產(chǎn)生作用怜校,也不會(huì)有任何的盒子產(chǎn)生;
除此之外蹭劈,如果元素為absolute或者fixed定位,那么float的屬性值相當(dāng)于‘none’,display的屬性如下面的表格所示。
盒的位置根據(jù)“top”侥衬,“right”,“bottom”和“l(fā)eft”屬性與盒的包含塊決定跑芳。
除此之外轴总,如果float屬性的值為不是none,那么元素將會(huì)浮動(dòng)博个,元素的display屬性將如下表所示怀樟;
除此之外,如果元素是根元素盆佣,那么元素的屬性如下表所示往堡;
除此之外,元素的display屬性則根據(jù)設(shè)定來取值共耍。
這是由于float和絕對定位都是使用塊框架(block layout)來顯示虑灰,所以會(huì)隱式地改變display的值。
浮動(dòng)及絕對定位元素外邊距不會(huì)合并痹兜。
overflow可以應(yīng)用于float和定位元素穆咐。
如果一個(gè)絕對定位元素的內(nèi)容溢出其內(nèi)容框,而且overflow設(shè)置為要求剪裁該內(nèi)容,使用clip屬性可以改變剪裁區(qū)域的形狀对湃。
positon 與 display 的相互關(guān)系
???元素分為內(nèi)聯(lián)元素和區(qū)塊元素兩類(當(dāng)然也有其它的)崖叫,在內(nèi)聯(lián)元素中有個(gè)非常重要的常識,即內(nèi)兩元素是不可以設(shè)置區(qū)塊元素所具有的樣式拍柒,例如:width | height心傀。
relative : 原來是什么類型的依舊是什么類型。?
absolute | fixed : 元素就被重置為了區(qū)塊元素拆讯,例如:打算為span元素指定大小脂男,并絕對定位?
????span這是完全正確的,?
????span往果,這里的display:block就是多余的了疆液。
position 與 float 的相互關(guān)系
一個(gè)元素若設(shè)置了?position:absolute | fixed; 則該元素就不能設(shè)置float。這是一個(gè)常識性的知識點(diǎn)陕贮,因?yàn)檫@是兩個(gè)不同的流堕油,一個(gè)是浮動(dòng)流,另一個(gè)是“定位流(這是自己起的名字肮之,呵呵)”掉缺。
但是 relative 卻可以。因?yàn)樗舅嫉目臻g仍然占據(jù)文檔流戈擒。
position: relative和position: absolute 都可以改變元素在文檔中的位置眶明,設(shè)置position: relative 或 position: absolute都可以讓元素激活left、top筐高、right搜囱、bottom 和 z-index 屬性。
網(wǎng)頁雖然看起來是平面的二維結(jié)構(gòu)柑土,但它其實(shí)是有z軸的蜀肘,z軸的大小由z-index 控制,默認(rèn)情況下稽屏,所有元素都是在z-index: 0 這一層的扮宠,這就是文檔流。設(shè)置position: relative 或 position: absolute會(huì)讓元素浮起來(就像游戲中的概念-多層圖層)狐榔,也就是z-index大于0坛增,它會(huì)改變正常情況下的文檔流。不同的是position: relative 會(huì)保留自己在z-index:0 層的位置薄腻,但是它的實(shí)際位置可能因?yàn)樵O(shè)置了left收捣、top、right庵楷、bottom值而偏離原來在文檔流中的位 置坏晦,但對其他仍然在z-index:0層的元素位置不會(huì)造成影響。而position: absolute會(huì)完全脫離文檔流,不再在z-index:0層保留占位符昆婿,其left、top蜓斧、right仓蛆、bottom 值是相對于自己最近的一個(gè)位置–設(shè)置了position: relative 或 position: absolute的祖先元素的,如果祖先元素都沒有設(shè)置position: relative 或 position: absolute挎春,那么就相對于body元素看疙。
除了position: relative 和 position: absolute,float也能改變文檔流直奋,不同的是能庆,float屬性不會(huì)讓元素“上浮”到另一個(gè)z-index層,它仍然讓元素在z-index:0 層排列脚线,float不像position: relative 和 position: absolute那樣搁胆,它不能通過left、top邮绿、right渠旁、bottom屬性精確地控制元素的坐標(biāo),它只能通過float:left 和 float:right 來控制元素在同層里“左浮”和“右浮”船逮。float會(huì)改變正常的文檔流排列顾腊,影響到周圍元素。
另一個(gè)有趣的現(xiàn)象是position: absolute 和 float會(huì)隱式地改變display類型挖胃,不論之前什么類型的元素(display:none除外)杂靶,只要設(shè)置了position: absolute 或 float中任意一個(gè),都會(huì)讓元素以display:inline-block的方式顯示:可以設(shè)置長寬酱鸭,默認(rèn)寬度并不占滿父元素吗垮。就算我們顯式地設(shè)置 display:inline或者display:block,也仍然無效(float在IE6 下的雙倍邊距bug就是利用添加display:inline來解決的)凛辣。值得注意的是抱既,position: relative卻不改變display的類型。
1扁誓、position?對?float?的影響:float?可以說是定義同輩元素之間的位置關(guān)系防泵,浮動(dòng)元素相對于父元素,其位置的定義是確定不變的的:基于position:static/relative時(shí)的位置蝗敢,向左側(cè)或右側(cè)靠近(一個(gè)可能的錯(cuò)誤的認(rèn)識是捷泞,浮動(dòng)元素會(huì)向左上角或右上角浮動(dòng)),
因此寿谴,position:static?和?position:relative?與?float?的效果可以疊加锁右,
但?position:absolute、position:fixed?這兩個(gè)定位屬性依賴于自身元素之外的參照,將使?float?的效果無法表現(xiàn)出來咏瑟。
2拂到、浮動(dòng)元素對文本的影響:浮動(dòng)概念的基礎(chǔ)是圖文混排,因此同輩元素的在排版時(shí)如果浮動(dòng)元素與非浮動(dòng)元素之間發(fā)生覆蓋码泞,無論是誰覆蓋誰兄旬,非浮動(dòng)的元素內(nèi)的文字將會(huì)被擠走,如下例:
.elm{?width:100px;?height:50px;background:green;?border:1px?solid?red;???}
.lf{float:left;?}
float
no?float余寥,被擠走
3领铐、浮動(dòng)元素對父元素的影響:浮動(dòng)元素的父元素丟失?block?高度,即使定義了高度宋舷,也無法影響其同輩浮動(dòng)元素及其浮動(dòng)的子元素的布局绪撵,默認(rèn)情況下,如果父元素沒有定義高度祝蝠,則父元素的內(nèi)容會(huì)撐開父元素音诈,達(dá)到自適應(yīng)?block?高度的效果,浮動(dòng)元素?zé)o法撐開其父元素的block?高度续膳。
4改艇、浮動(dòng)元素對自身的影響:浮動(dòng)元素將按?inline-block?形式布局(haslayout),即使將他設(shè)置為?display:inline;坟岔,因此谒兄,默認(rèn)寬度自動(dòng)擴(kuò)展為100%的元素浮動(dòng)之后,寬度由元素內(nèi)容撐大社付,原來沒有高寬屬性的元素也變得可以定義高寬承疲;如果出現(xiàn)重疊,浮動(dòng)元素將疊加在非浮動(dòng)的同輩元素之上(像是具有更大的z-index值)鸥咖;
5燕鸽、display, position, float 之間的相互關(guān)系:
1. 如果display等于none,則用戶端必須忽略position和float啼辣。在這種情況下啊研,元素不產(chǎn)生盒子。
2. 否則鸥拧,如果position等于absolute党远,則display與float皆強(qiáng)制為none(list-item保持不變)。盒子的位置由邊界偏移量確定富弦。
3. 否則沟娱,如果float不等于none或該元素是根元素,則display強(qiáng)制為block(list-item保持不變)腕柜。
4. 否則济似,使用指定的display屬性矫废。
1、絕對定位完全脫離普通流砰蠢,因此絕對定位元素?zé)o法跟普通流搭建交互關(guān)系(普通流能影響絕對定位蓖扑,絕對定位不影響普通流),這樣來說娩脾,在一些自適應(yīng)布局場 景中赵誓,絕對定位就存在一些缺陷(需要更多的限制因素,非常不靈活)柿赊。如果希望用絕對定位實(shí)現(xiàn)你說的 float 或 inline-block 同樣的效果,這個(gè)時(shí)候一般是不推薦用 絕對定位幻枉。
2碰声、對于浮動(dòng),這個(gè)屬性一般不是用來做布局的(偏向于排版)熬甫,但是CSS2.1好像也就這個(gè)屬性 能夠滿足一些特定需求胰挑,所有才有了浮動(dòng)布局。浮動(dòng)相對絕對定位好處是椿肩,它默認(rèn)可以影響行內(nèi)布局瞻颂,通過 clear 清除浮動(dòng)也可以影響 塊布局,可以與普通流建立良好的交互郑象。 而且浮動(dòng)本身是脫離普通流的贡这,在元素的水平定位上相比于 inline-block 更加靈活多變, 而 inline-block 的水平定位則更加有序厂榛。
3盖矫、inline-block,這個(gè)屬性也不是用來布局的(偏向于排版)击奶,但是在 CSS3 普及之前辈双,它的用處也很大。該元素的盒子在行框中進(jìn)行格式化柜砾,其順序與源HTML中的順序一一對應(yīng)湃望。 同時(shí)該元素不脫離普通流,這比浮動(dòng)來說有更大的優(yōu)勢痰驱,它可以跟普通流自然交互证芭,而不必要借助去其他屬性。而且相比浮動(dòng)萄唇,相鄰元素間的垂直對齊方 式檩帐,inline-block 比 float 更加靈活, float 格式化時(shí)有一條規(guī)則另萤,就是越高越好(因此常常表現(xiàn)為頂端對齊)湃密,而 inline-block 在行內(nèi)格式化诅挑,擁有更靈活的垂直對齊方式。應(yīng)用:
如果使用了浮動(dòng)泛源,清除浮動(dòng)就會(huì)成為你的副作用拔妥,而且如果你沒有良好的HTML/CSS 結(jié)構(gòu)的話,清除浮動(dòng)是一個(gè)很復(fù)雜的事情达箍。
inline-block 雖然避免了清除浮動(dòng)的事情没龙,但是會(huì)有另一個(gè)副作用,即空白符問題缎玫。這個(gè)問題的解決方案也令人十分蛋疼硬纤,因?yàn)楫吘?inline-block 不是布局屬性,它僅僅是 行內(nèi)級塊容器盒子赃磨。 同時(shí)筝家,作為IFC環(huán)境中的格式化問題,垂直居中邻辉、行高等問題也有可能是一個(gè)副作用溪王。
其他:
其實(shí)在 CSS2.1中,利用表格 table 布局也是非常強(qiáng)大的方法值骇。表格布局在等高莹菱,同列等寬對齊,垂直居中對齊上面的優(yōu)勢是其他方法很難媲美的吱瘩。甚至于在自適應(yīng)場景中道伟,表格布局的靈活性也非常出眾。
float: left|right; 可以自動(dòng)排列自動(dòng)折行, 但需要clear來配合清除浮動(dòng);
display: inline-block; 有些時(shí)候可以替代float實(shí)現(xiàn)相同的效果.
position: absolute|relative; 要配合top,left等定位;舉例:
div {border: 1px solid red; margin: 1px;}
div div {border: 1px solid blue;}
Float 1
Float 2
Inline Block 1
Inline Block 2
Position 1
Position 2
表現(xiàn):
上面的是float, 中間的是inline-block, 下面的是position, 可以看出:
1. 當(dāng)居右(右浮動(dòng))時(shí), float是按先后順序來的, 先寫的排子右邊; 而inline-block則保持左右順序不變.
2. 在部分瀏覽器中(以上是在的firefox中), 空行或空格會(huì)影響到inline-block, 卻不會(huì)影響到float的block.
3. position只能配合left,right來定位, 如果去掉則重疊在一起; 不能借助clear等自動(dòng)擴(kuò)展容器.
4. 他們都有共同點(diǎn), 如果包裹的是行級元素, 則寬度可以按內(nèi)容寬度自適應(yīng).
使用場景:
照片墻, 選項(xiàng)卡, 導(dǎo)航條等可以使用inline-block或float, 推薦inline-block, 但需要注意瀏覽器兼容, 用float記得習(xí)慣性的使用clear.
Tip等提示, 懸浮窗, 遮罩等, 建議使用position.
...
...
...
...
...
...
...
1???
2??????? 2.0.6
3???
4
5???
6???????
7???????????
8???????????
9???????
10???
11
12???
13???????
14???????
15???????
16???
17
18???
19???????
20???????
21???
22
23???
24???????
25???????????
26???????????
27???????????
28???????????
29???????
30???
這里有些東西暫時(shí)不談-->
...
-->
junit
junit
4.0
jar
test
true
groupId搅裙,artifactId和version這個(gè)三組合標(biāo)示依賴的具體工程皱卓,而且這個(gè)依賴工程必須是maven中心包管理范圍內(nèi)的。如果碰上非開源包部逮,maven支持不了這個(gè)包娜汁,那么則有三種方法處理:1.本地安裝這個(gè)插件install plugin例如:
mvn install:install-file -Dfile=non-maven-proj.jar -DgroupId=some.group -DartifactId=non-maven-proj -Dversion=1
2.創(chuàng)建自己的Repositories并且部署這個(gè)包,使用類似上面的deploy:deploy-file 命令3.設(shè)置scope為system兄朋,并且指定系統(tǒng)路徑
dependency里面的classifier掐禁,用于區(qū)分從同一個(gè)pom編譯出來的但是內(nèi)容不同的同名包,例如同一個(gè)工程編譯出兩個(gè)artifact颅和,一個(gè)支持jdk1.5一個(gè)支持jdk1.4傅事,那么就可以使用這個(gè)來命名為jdk15和jdk14來區(qū)分,它如果出現(xiàn)在包名中峡扩,那么它必須跟在版本號后蹭越。還有一種情況是將一個(gè)工程的一些次要artifact附到主要artifact中,就可以使用這個(gè)來區(qū)分教届,例如一個(gè)工程產(chǎn)生source响鹃,javadoc驾霜,class三種東西,那么就可以使用不同的 classifier來分別標(biāo)識這些東西
dependency里面的type买置,默認(rèn)為jar粪糙,類型,常用如:jar忿项,ejb-client蓉冈,test-jar,可以設(shè)置plugins中的extensions值為true后在增加新類型
dependency里面的scope轩触,指定 classpath寞酿,可以為:compile(默認(rèn)的,compile scope在所有classpaths內(nèi)有效脱柱,這些dependencies將會(huì)傳播到項(xiàng)目中熟嫩。provided:指示jdk或者某個(gè)容器可以提供他,它只在compilation和test的classpaths有效褐捻,而且不會(huì)傳播的。runtime:指示這個(gè)dependency在編譯過程是不必要的椅邓,但是執(zhí)行需要柠逞,在test和runtime的classpaths有效,在compile的classpaths無效景馁。test:指示這個(gè) dependency在一般程序運(yùn)行是無效的板壮,但是在test的compilation和execution是有效的,system則跟provided 類似合住,但是這種dependency必須人工明確地制定绰精。這種依賴不會(huì)在repository中查找。
dependency里面的systemPath:只在dependency的scope聲明為system的時(shí)候才有用除透葛,否則笨使,build的過程將會(huì)失敗。路徑必須是絕對的僚害,所以最好使用property來聲明機(jī)器的特定路徑硫椰。
dependency里面的optional:如果工程本身是一個(gè)dependency那么就標(biāo)記為optional,例如X需要A萨蚕,A需要B靶草,那么X只需要optional的B,則B在X中就是optional聲明的了
dependency里面的exclusions:如果X需要 A岳遥,A包含B依賴奕翔,那么X可以聲明不要B依賴,只要在exclusions中聲明exclusion浩蓉。optional是不會(huì)install或者使用B派继,而exclusion是將B從依賴樹中是刪除宾袜。例如appfuse不想使用hibernate,但是appfuse是集成hibernate的互艾,所以就排除掉:
org.appfuse
appfuse-hibernate
-->
...
org.codehaus.mojo
my-parent
2.0
../my-parent
-->
...
...
my-project
another-project
-->
...
...
defaultGoal:默認(rèn)的目標(biāo)试和,必須跟命令行上的參數(shù)相同例如jar:jar,或者與時(shí)期(parse)相同纫普,例如install
directory:指定build target目標(biāo)的目錄阅悍,默認(rèn)為${basedir}/target,即項(xiàng)目根目錄下的target
finalName:指定去掉后綴名后的工程名字昨稼,例如:默認(rèn)為${artifactId}-${version}
filters:用于定義指定filter屬性文件位置节视,例如filter元素賦值filters/filter1.properties,那么這個(gè)文件里面就可以定義name=value對假栓,這個(gè) name=value對的值就可以在工程pom中通過${name}引用寻行,默認(rèn)的filter目錄是${basedir}/src/main/filters/
resources:描述工程中資源的位置
META-INF/plexus
false
${basedir}/src/main/plexus
configuration.xml
**/*.properties
targetPath:指定build資源到哪個(gè)目的目錄,默認(rèn)是base directory
filtering:指定是否將filter文件(即上面說的filters里定義的*.property文件)的變量值在這個(gè)resource文件有效匾荆,例如上面就指定那些變量值在configuration文件無效
directory:指定屬性文件的目錄拌蜘,build的過程需要找到它,并且將其放到targetPath下牙丽。默認(rèn)的directory是${basedir}/src/main/resources
includes:指定包含文件的patterns简卧,符合樣式并且在directory目錄下的文件將會(huì)是包含進(jìn)project的資源文件
excludes:指定不包含在內(nèi)的patterns,如果includes與excludes有沖突烤芦,那么excludes勝利举娩,那些符合沖突樣式的文件還是不會(huì)包含進(jìn)來的
testResources:這個(gè)模塊包含測試資源元素,其內(nèi)容定義與resources類似构罗。不同的一點(diǎn)是默認(rèn)的測試資源路徑是${basefir}/src/test/resources铜涉,測試資源是不部署的。
-->
...
org.apache.maven.plugins
maven-jar-plugin
2.0
false
true
test
...
...
extensions:true or false遂唧,決定是否要load這個(gè)plugin的extensions
inherited:是否讓子pom繼承true or false
configuration:通常用于私有不開源的plugin芙代,不能夠詳細(xì)了解plugin的內(nèi)部工作原理,但使plugin滿足需要滿足的properties
dependencies:與pom基礎(chǔ)的dependencies的結(jié)構(gòu)和功能都相同蠢箩,只是plugin的dependencies用于plugin链蕊,而pom的dependencies用于本身這個(gè)工程,在plugin的dependencies主要用于改變plugin原來的 dependencies谬泌,例如排除一些用不到的dependency或者修改dependency的版本等滔韵,詳細(xì)請看pom基礎(chǔ)的 dependencies
executions:plugin也有很多個(gè)目標(biāo),每個(gè)目標(biāo)具有不同的配置掌实,executions就是設(shè)定plugin的目標(biāo)
echodir
run
verify
false
Build Dir: ${project.build.directory}
id:標(biāo)識符
goals:里面列出一系列的goal元素陪蜻,例如上面的run goal
phase:聲明goals執(zhí)行的時(shí)期,例如:verify
inherited:是否傳遞execution到子pom
configuration:設(shè)置execution下列表的goals 的設(shè)置贱鼻,而不是plugin所有g(shù)oals的設(shè)置
plugin Management: 用于管理plugin宴卖,與pom build里的plugins區(qū)別是滋将,這里的plugin是列出來,然后讓子pom來決定是否引用的症昏,例如后面的引用方法随闽。
org.apache.maven.plugins
maven-jar-plugin
2.2
pre-process-classes
compile
jar
pre-process
子pom引用方法:
在pom的build里的plugins引用:
org.apache.maven.plugins
maven-jar-plugin
build 里面的Directories:
${basedir}/src/main/java
${basedir}/src/main/scripts
${basedir}/src/test/java
${basedir}/target/classes
${basedir}/target/test-classes
這幾個(gè)元素只在parent bulid element里面定義,他們設(shè)置多種路徑結(jié)構(gòu)肝谭,他們并不在profile里掘宪,所以不能通過profile來修改
build 里面的Extensions:
它們是一系列build過程中要使用的產(chǎn)品,他們會(huì)包含在running bulid‘s classpath里面攘烛。他們可以開啟extensions魏滚,也可以通過提供條件來激活plugins。簡單來講坟漱,extensions是在build過程被激活的產(chǎn)品
org.apache.maven.wagon
wagon-ftp
1.0-alpha-3
-->
...
reporting包含site生成階段的一些元素鼠次,某些maven? plugin可以生成reports并且在repoting下配置。例如javadoc芋齿,maven site等腥寇,在reporting下配置reprot plugin的方法與build幾乎一樣,最不同的是:build的plug-in goals在executions下設(shè)置觅捆,而reporting的configures goals在reportset花颗。更微妙的不同是reporting下的plugin configuration works as a build plugin configuration,但是相反是不對的(即build plugin configuration does not affect a reporting plugin)惠拭。
excludeDefaults:是否排除site generator默認(rèn)產(chǎn)生的reports
outpoutDirectory,默認(rèn)的dir變成:${basedir}/target/site
Report sets:設(shè)置execution goals庸论,相當(dāng)于build里面的executions职辅。不同的是不能夠bind a report to another phase,只能夠是site
...
sunlink
javadoc
true
http://java.sun.com/j2se/1.5.0/docs/api/
reporting里面的厄reportSets和build里面的executions的作用都是控制pom的不同粒度去控制build的過程聂示,我們不單要配置plugins域携,還要配置那些plugins單獨(dú)的goals。
-->
...
...
...
Apache 2
http://www.apache.org/licenses/LICENSE-2.0.txt
repo
A business-friendly OSS license
# name, url and comments: are self explanatory, and have been encountered before in other capacities. The fourth license element is:
# distribution: This describes how the project may be legally distributed. The two stated methods are repo (they may be downloaded from a Maven repository) or manual (they must be manually installed).
-->
...
Codehaus Mojo
http://mojo.codehaus.org
很多工程都受到某些組織運(yùn)行鱼喉,這里設(shè)置基本信息
-->
...
eric
Eric
eredmond@codehaus.org
http://eric.propellors.net
Codehaus
http://mojo.codehaus.org
architect
developer
-6
http://tinyurl.com/prv4t
-->
...
Noelle
some.name@gmail.com
http://noellemarie.com
Noelle Marie
http://noellemarie.com
tester
-5
some.name@gmail.com
-->
...
Bugzilla
http://127.0.0.1/bugzilla/
-->
...
continuum
http://127.0.0.1:8080/continuum
true
true
false
false
continuum@127.0.0.1
maven捕獲一些經(jīng)常重發(fā)生的配置秀鞭,在notifier元素里配置。A notifier is the manner in which people are notified of certain build statuses. In the following example, this POM is setting a notifier of type mail (meaning email), and configuring the email address to use on the specified triggers sendOnError, sendOnFailure, and not sendOnSuccess or sendOnWarning.
-->
...
User List
user-subscribe@127.0.0.1
user-unsubscribe@127.0.0.1
user@127.0.0.1
http://127.0.0.1/user/
http://base.google.com/base/1/127.0.0.1
看不懂解釋啊扛禽,照搬吧:
# subscribe, unsubscribe: There elements specify the email addresses which are used for performing the relative actions To subscribe to the user list above, a user would send an email to user-subscribe@127.0.0.1.
# archive: This element specifies the url of the archive of old mailing list emails, if one exists. If there are mirrored archives, they can be specified under otherArchives.
# post: The email address which one would use in order to post to the mailing list. Note that not all mailing lists have the ability to post to (such as a build failure list).
-->
...
scm:svn:http://127.0.0.1/svn/my-project
scm:svn:https://127.0.0.1/svn/my-project
HEAD
http://127.0.0.1/websvn/my-project
connection, developerConnection: 都是連接字符串锋边,其中后者是具有write權(quán)限的scm連接,常用的scm工具包括cvs與subversion编曼,還有其他scms豆巨,url的字符串格式是:scm:[provider]:[provider_specific],例如cvs的是scm:cvs:pserver:127.0.0.1:/cvs/root:my-project
tag:說明project所在的目錄tag掐场,默認(rèn)是HEAD往扔,表示根目錄
url:公開的可瀏覽repository
-->
...
...
BASE_REPO可以是本地贩猎,也可以是遠(yuǎn)程的。repository元素就是聲明那些去查找的repositories
默認(rèn)的central Maven repository在http://repo1.maven.org/maven2/萍膛;
false
always
warn
true
never
fail
codehausSnapshots
Codehaus Snapshots
http://snapshots.maven.codehaus.org/maven2
default
release和snapshots:是artifact的兩種policies吭服,pom可以選擇那種政策有效。
enable:本別指定兩種類型是否可用蝗罗,true or false
updatePolicy:說明更新發(fā)生的頻率always 或者 never 或者 daily(默認(rèn)的)或者 interval:X(X是分鐘數(shù))
checksumPolicy:When Maven deploys files to the repository, it also deploys corresponding checksum files. Your options are to ignore, fail, or warn on missing or incorrect checksums.
layout:maven1.x與maven2有不同的layout艇棕,所以可以聲明為default或者是legacy(遺留方式maven1.x)。
-->
...
...
downloadUrl:是其他項(xiàng)目為了抓取本項(xiàng)目的pom’s artifact而指定的url绿饵,就是說告訴pom upload的地址也就是別人可以下載的地址欠肾。
status:這里的狀態(tài)不要受到我們的設(shè)置,maven會(huì)自動(dòng)設(shè)置project的狀態(tài)拟赊,有效的值:none:沒有聲明狀態(tài)刺桃,pom默認(rèn)的;converted:本project是管理員從原先的maven版本convert到maven2的吸祟;partner:以前叫做synched瑟慈,意思是與partner repository已經(jīng)進(jìn)行了同步;deployed:至今為止最經(jīng)常的狀態(tài)屋匕,意思是制品是從maven2 instance部署的葛碧,人工在命令行deploy的就會(huì)得到這個(gè);verified:本制品已經(jīng)經(jīng)過驗(yàn)證过吻,也就是已經(jīng)定下來了最終版进泼。
repository:聲明deploy過程中current project會(huì)如何變成repository,說明部署到repository的信息纤虽。
false
corp1
Corporate Repository
scp://repo1/maven2
default
true
propSnap
Propellors Snapshots
sftp://propellers.net/maven
legacy
id, name::唯一性的id乳绕,和可讀性的name
uniqueVersion:指定是否產(chǎn)生一個(gè)唯一性的version number還是使用address里的其中version部分。true or false
url:說明location和transport protocol
layout:default或者legacy-->
mojo.website
Mojo Website
scp://beaver.codehaus.org/home/projects/mojo/public_html/
與上面repository的元素相同意思
-->
Relocation:
說明工程的變更逼纸,在這里警告使用者當(dāng)心工程被重命名了等信息洋措。重新指定id和名稱,并且寫個(gè)message注明備注??
org.apache
my-project
1.0
We have moved the Project under Apache
-->
...
它包含可選的activation(profile的觸發(fā)器)和一系列的changes杰刽。例如test過程可能會(huì)指向不同的數(shù)據(jù)庫(相對最終的 deployment)或者不同的dependencies或者不同的repositories菠发,并且是根據(jù)不同的JDK來改變的。那么結(jié)構(gòu)如下:
test
...
...
...
...
...
...
...
...
...
Activation:
觸發(fā)這個(gè)profile的條件配置如下例:(只需要其中一個(gè)成立就可以激活profile贺嫂,如果第一個(gè)條件滿足了滓鸠,那么后面就不會(huì)在進(jìn)行匹配。
test
false
1.5
Windows XP
Windows
x86
5.1.2600
mavenVersion
2.0.3
${basedir}/file2.properties
${basedir}/file1.properties
激活profile的方法有多個(gè):setting文件的activeProfile元素明確指定激活的profile的ID第喳,在命令行上明確激活Profile用-P flag 參數(shù)
查看某個(gè)build會(huì)激活的profile列表可以用:mvn help:active-profiles
-->