<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 属性是用于分割字符串中的分隔符。 在这个例子中,tokenize 标签中节点值是一个变量:goals, 在前几行中,这是一个由逗号分隔、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标签提供简单循环功能,节点值就是循环体。
maven.checkstyle.format = sun 你可能已经猜出来了,Checksytle插件把Sun的编码规范作为缺省的格式。但是我们仍然可以在标准属性文件集的任何一个文件中覆盖这个属性。所以如果在${project.home}/project.properties 文件定义了如下属性值:
代理属性描述 maven.proxy.host 代理的IP地址 maven.proxy.port 代理端口 maven.proxy.username 如果代理需要认证的话,在这里填写用户名。 User name if your proxy requires authentication. maven.proxy.password 如果代理需要认证的话,在这里填写密码。
# ------------------------------------------------------------------------ # 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依赖 在Maven中,SNAPSHOP是某个特定项目的最新构建的jar包。如果你的项目依赖于另一个频繁变更的项目,你可以在你的POM中声明SNAPSHOP依赖,以保持与那个项目的同步。例如,在你的POM中这样写,你可以与Jelly保持同步更新。
<!-- | | At this point because ‘postProcessing‘ was turned on we have all | the processed POMs available to us in the ${reactorProjects} variable. | -->
发布多个包的项目 Maven的依赖机制完全支持任何形式的多项目包。 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)实际上是指向属于同一组的单个包的指针,这就是说,一个单独的依赖就是对某个组中的某个包的引用。目前artifact如果没有特别说明的话,一般指的是jar包。但是依赖也可能是一个war文件或一个发行包。我们试图在提供多数情况下(构建大多需要jar包)使用的缺省方式的同时,也顾及灵活性。