positon 與 display 的相互關(guān)系

轉(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和絕對(duì)定位都是使用塊框架(block layout)來顯示,所以會(huì)隱式地改變display的值。

margin collapse 外邊距合并

浮動(dòng)及絕對(duì)定位元素外邊距不會(huì)合并。

overflow

overflow可以應(yīng)用于float和定位元素。

如果一個(gè)絕對(duì)定位元素的內(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è)非常重要的常識(shí),即內(nèi)兩元素是不可以設(shè)置區(qū)塊元素所具有的樣式,例如:width | height。

relative : 原來是什么類型的依舊是什么類型。?

absolute | fixed : 元素就被重置為了區(qū)塊元素,例如:打算為span元素指定大小,并絕對(duì)定位?

????span這是完全正確的,?

????span,這里的display:block就是多余的了。

position 與 float 的相互關(guān)系

一個(gè)元素若設(shè)置了?position:absolute | fixed; 則該元素就不能設(shè)置float。這是一個(gè)常識(shí)性的知識(shí)點(diǎn),因?yàn)檫@是兩個(gè)不同的流,一個(gè)是浮動(dòng)流,另一個(gè)是“定位流(這是自己起的名字,呵呵)”。

但是 relative 卻可以。因?yàn)樗舅嫉目臻g仍然占據(jù)文檔流。

position: relative和position: absolute 都可以改變?cè)卦谖臋n中的位置,設(shè)置position: relative 或 position: absolute都可以讓元素激活left、top、right、bottom 和 z-index 屬性。

網(wǎng)頁(yè)雖然看起來是平面的二維結(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值而偏離原來在文檔流中的位 置,但對(duì)其他仍然在z-index:0層的元素位置不會(huì)造成影響。而position: absolute會(huì)完全脫離文檔流,不再在z-index:0層保留占位符,其left、top、right、bottom 值是相對(duì)于自己最近的一個(gè)位置–設(shè)置了position: relative 或 position: absolute的祖先元素的,如果祖先元素都沒有設(shè)置position: relative 或 position: absolute,那么就相對(duì)于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è)置長(zhǎng)寬,默認(rèn)寬度并不占滿父元素。就算我們顯式地設(shè)置 display:inline或者display:block,也仍然無效(float在IE6 下的雙倍邊距bug就是利用添加display:inline來解決的)。值得注意的是,position: relative卻不改變display的類型。

1、position?對(duì)?float?的影響:float?可以說是定義同輩元素之間的位置關(guān)系,浮動(dòng)元素相對(duì)于父元素,其位置的定義是確定不變的的:基于position:static/relative時(shí)的位置,向左側(cè)或右側(cè)靠近(一個(gè)可能的錯(cuò)誤的認(rèn)識(shí)是,浮動(dòng)元素會(huì)向左上角或右上角浮動(dòng)),

因此,position:static?和?position:relative?與?float?的效果可以疊加,

但?position:absolute、position:fixed?這兩個(gè)定位屬性依賴于自身元素之外的參照,將使?float?的效果無法表現(xiàn)出來。


2、浮動(dòng)元素對(duì)文本的影響:浮動(dòng)概念的基礎(chǔ)是圖文混排,因此同輩元素的在排版時(shí)如果浮動(dòng)元素與非浮動(dòng)元素之間發(fā)生覆蓋,無論是誰(shuí)覆蓋誰(shuí),非浮動(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)元素對(duì)父元素的影響:浮動(dòng)元素的父元素丟失?block?高度,即使定義了高度,也無法影響其同輩浮動(dòng)元素及其浮動(dòng)的子元素的布局,默認(rèn)情況下,如果父元素沒有定義高度,則父元素的內(nèi)容會(huì)撐開父元素,達(dá)到自適應(yīng)?block?高度的效果,浮動(dòng)元素?zé)o法撐開其父元素的block?高度。


4、浮動(dòng)元素對(duì)自身的影響:浮動(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、絕對(duì)定位完全脫離普通流,因此絕對(duì)定位元素?zé)o法跟普通流搭建交互關(guān)系(普通流能影響絕對(duì)定位,絕對(duì)定位不影響普通流),這樣來說,在一些自適應(yīng)布局場(chǎng) 景中,絕對(duì)定位就存在一些缺陷(需要更多的限制因素,非常不靈活)。如果希望用絕對(duì)定位實(shí)現(xiàn)你說的 float 或 inline-block 同樣的效果,這個(gè)時(shí)候一般是不推薦用 絕對(duì)定位。

2、對(duì)于浮動(dòng),這個(gè)屬性一般不是用來做布局的(偏向于排版),但是CSS2.1好像也就這個(gè)屬性 能夠滿足一些特定需求,所有才有了浮動(dòng)布局。浮動(dòng)相對(duì)絕對(duì)定位好處是,它默認(rèn)可以影響行內(nèi)布局,通過 clear 清除浮動(dòng)也可以影響 塊布局,可以與普通流建立良好的交互。 而且浮動(dòng)本身是脫離普通流的,在元素的水平定位上相比于 inline-block 更加靈活多變, 而 inline-block 的水平定位則更加有序。

3、inline-block,這個(gè)屬性也不是用來布局的(偏向于排版),但是在 CSS3 普及之前,它的用處也很大。該元素的盒子在行框中進(jìn)行格式化,其順序與源HTML中的順序一一對(duì)應(yīng)。 同時(shí)該元素不脫離普通流,這比浮動(dòng)來說有更大的優(yōu)勢(shì),它可以跟普通流自然交互,而不必要借助去其他屬性。而且相比浮動(dòng),相鄰元素間的垂直對(duì)齊方 式,inline-block 比 float 更加靈活, float 格式化時(shí)有一條規(guī)則,就是越高越好(因此常常表現(xiàn)為頂端對(duì)齊),而 inline-block 在行內(nèi)格式化,擁有更靈活的垂直對(duì)齊方式。應(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)級(jí)塊容器盒子。 同時(shí),作為IFC環(huán)境中的格式化問題,垂直居中、行高等問題也有可能是一個(gè)副作用。


其他:

其實(shí)在 CSS2.1中,利用表格 table 布局也是非常強(qiáng)大的方法。表格布局在等高,同列等寬對(duì)齊,垂直居中對(duì)齊上面的優(yōu)勢(shì)是其他方法很難媲美的。甚至于在自適應(yīng)場(chǎ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), 如果包裹的是行級(jí)元素, 則寬度可以按內(nèi)容寬度自適應(yīng).


使用場(chǎ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)在包名中,那么它必須跟在版本號(hào)后。還有一種情況是將一個(gè)工程的一些次要artifact附到主要artifact中,就可以使用這個(gè)來區(qū)分,例如一個(gè)工程產(chǎn)生source,javadoc,class三種東西,那么就可以使用不同的 classifier來分別標(biāo)識(shí)這些東西

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ì)失敗。路徑必須是絕對(duì)的,所以最好使用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對(duì),這個(gè) name=value對(duì)的值就可以在工程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è)模塊包含測(cè)試資源元素,其內(nèi)容定義與resources類似。不同的一點(diǎn)是默認(rèn)的測(cè)試資源路徑是${basefir}/src/test/resources,測(cè)試資源是不部署的。

-->

...

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ì)請(qǐng)看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)識(shí)符

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里面定義,他們?cè)O(shè)置多種路徑結(jié)構(gòu),他們并不在profile里,所以不能通過profile來修改

build 里面的Extensions:

它們是一系列build過程中要使用的產(chǎn)品,他們會(huì)包含在running bulid‘s classpath里面。他們可以開啟extensions,也可以通過提供條件來激活plugins。簡(jiǎn)單來講,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,但是相反是不對(duì)的(即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

mail

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ù)庫(kù)(相對(duì)最終的 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

-->

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。