<description>Maven is a project that was created in ${pom.inceptionYear}.</description> <shortDescription>${pom.name} is a Java Project Management Tool</shortDescription>
<goal name="nightly-build"> <!-- Any ant task, or jelly tags can go here thanks to jeez --> <j:set var="goals" value="compile,test" /> <mkdir dir="${maven.build.dir}" /> <u:tokenize var="goals" delim=",">${goals}</u:tokenize> <j:forEach items="${goals}" var="goal" indexVar="goalNumber"> Now attaining goal number ${goalNumber}, which is ${goal} <attainGoal name="${goal}" /> </j:forEach> </goal>
var 屬性就是將被于新list的變量。 delim 屬性是用于分割字符串中的分隔符。 在這個(gè)例子中,tokenize 標簽中節點(diǎn)值是一個(gè)變量:goals, 在前幾行中,這是一個(gè)由逗號分隔、compile 與 test 的字符串。
forEach <j:forEach items="${goals}" var="goal" indexVar="goalNumber"> Now attaining goal number ${goalNumber}, which is ${goal} <attainGoal name="${goal}" /> </j:forEach>forEach標簽提供簡(jiǎn)單循環(huán)功能,節點(diǎn)值就是循環(huán)體。
maven.checkstyle.format = sun 你可能已經(jīng)猜出來(lái)了,Checksytle插件把Sun的編碼規范作為缺省的格式。但是我們仍然可以在標準屬性文件集的任何一個(gè)文件中覆蓋這個(gè)屬性。所以如果在${project.home}/project.properties 文件定義了如下屬性值:
代理屬性描述 maven.proxy.host 代理的IP地址 maven.proxy.port 代理端口 maven.proxy.username 如果代理需要認證的話(huà),在這里填寫(xiě)用戶(hù)名。 User name if your proxy requires authentication. maven.proxy.password 如果代理需要認證的話(huà),在這里填寫(xiě)密碼。
# ------------------------------------------------------------------------ # M A V E N J A R O V E R R I D E # ------------------------------------------------------------------------ maven.jar.override = on
# ------------------------------------------------------------------------ # Jars set explicity by path. # ------------------------------------------------------------------------ maven.jar.a = ${basedir}/lib/a.jar maven.jar.b = ${basedir}/lib/b.jar
# ------------------------------------------------------------------------ # Jars set explicity by version. # ------------------------------------------------------------------------ maven.jar.classworlds = 1.0-beta-1 使用SNAPSHOT依賴(lài) 在Maven中,SNAPSHOP是某個(gè)特定項目的最新構建的jar包。如果你的項目依賴(lài)于另一個(gè)頻繁變更的項目,你可以在你的POM中聲明SNAPSHOP依賴(lài),以保持與那個(gè)項目的同步。例如,在你的POM中這樣寫(xiě),你可以與Jelly保持同步更新。
<!-- | | At this point because ‘postProcessing‘ was turned on we have all | the processed POMs available to us in the ${reactorProjects} variable. | -->
發(fā)布多個(gè)包的項目 Maven的依賴(lài)機制完全支持任何形式的多項目包。 Maven‘s dependency mechanism completely supports multiple project artifacts of any given type.
下面的代碼包含了ant的主jar包和optional包加上hypothetical包。
<dependencies>
<!-- A --> <dependency> <groupId>ant</groupId> <artifactId>ant</artifactId> <version>1.4.1</version> </dependency>
<!-- B --> <dependency> <groupId>ant</groupId> <artifactId>ant-optional</artifactId> <version>1.4.1</version> </dependency>
<!-- C --> <dependency> <groupId>ant</groupId> <artifactId>poorly-named</artifactId> <version>1.4.1</version> </dependency>
</dependencies> 所以A), B) 和 C)實(shí)際上是指向屬于同一組的單個(gè)包的指針,這就是說(shuō),一個(gè)單獨的依賴(lài)就是對某個(gè)組中的某個(gè)包的引用。目前artifact如果沒(méi)有特別說(shuō)明的話(huà),一般指的是jar包。但是依賴(lài)也可能是一個(gè)war文件或一個(gè)發(fā)行包。我們試圖在提供多數情況下(構建大多需要jar包)使用的缺省方式的同時(shí),也顧及靈活性。