file="${project.build.directory}/${project.build.finalName}.${project.packaging}"
property="file.exists"value="true"/>
No
${project.build.finalName}.${project.packaging}to
delete
Deleting
${project.build.finalName}.${project.packaging}
ant-contrib
ant-contrib
1.0b2
也可以在标准的clean插件上进行配置:
4.0.0
...
maven-clean-plugin
target-other
*.class
默认的生命周期:
Site的生命周期:
1.pre-site
2.site
3.post-site
4.site-deploy
The default goals bound to the site life cycleis:
1.site-site:
site
2.site-deploy-site:
deploy
内置打包的生命周期:
打成Jar包的生命周期:
POM:
WAR打包:
The WAR packaging type is similar to theJARandEJBtypes.Theexceptionbeingthepackagegoalofwar:
war.Note
thatthewar:
warpluginrequiresaweb.xmlconfigurationinyoursrc/main/webapp/WEB-INFdirectory.Thedefaultgoals
forprojectswithWARpackagingareshowninTable10.6,“DefaultGoalsforWARPackaging”.
EAR打包:
过滤器,可以替换属性值:
配置resource的目录:
过滤脚本或者文件:
设置编译和运行的JDK版本,对编译插件进行配置,注意,此处是对编译的插件进行设置而不是对编译的目标进行设置的:
可以通过sourceDirectory和outputDirectory来改变默认的源码和输出的文件夹位置,但是为了让你的项目具有更好的可读性,不推荐改变这个默认配置:
同理,可以改变测试文件的源文件和目标文件夹,通过testSourceDirectory和testOutputDirectory来设置。
单元测试时允许让maven跳过失败的单元案例继续下面的测试,通过配置测试插件org.apache.maven.plugins下的maven-surefire-plugin来实现:
或者也可以通过在命令行打包的时候指定参数来达到同样的目的:
Install生命周期:
install生命周期就做一件事,将打包完的jar文件拷贝到本地仓库
Deploy生命周期:
deploy将打包完的东东发布到远程仓库
可以通过profile重写的元素:
Mavne的profile可以定义在pom.xml,profiles.xml,~/.m2/setting.xml或者${MAVEN_HOME}/conf/setting.xml文件里面,可以通过active-profiles目标来查找mvnhelp:
active-profiles
Predefinedassemblydescriptors:
使用方法:
Assembly:
用来打包的
可以有fileSets/dependencySets,可以定义输出的格式、目录结构
上述的webContextName是自定义的POM属性值,这个目录结构是jetty的目录结构
自定义资源文件:
POM文件可以通过${project.*}来获取,具体可以获取到哪些参照http:
//maven.apache.org/ref/2.0.9/maven-model/maven.html 上的Model对象Schemel,其实就是通过XML来配置的一个Java对象
可以通过${settings.*}来获取.m2/settings.xml 文件里面的配置
可以通过${env.*}来获取环境变更的值
任何可以通过Java的System.getProperty()得到的属性都可以通过${属性名}来获取到
Setting.xml:
http:
//maven.apache.org/ref/2.0.9/maven-settings/settings.html
用户自定义属性,可以在节点底下自定义属性,属性可以在其他地方使用,用法一样:
Thisissometext
3.3.0.ga
Java系统属性:
系统属性描述
java.versionJava运行环境版本
java.vendorJava运行环境供应商
java.vendor.urlJava供应商URL
java.homeJava安装目录
java.vm.specification.versionJava虚拟机规格说明版本
java.vm.specification.vendorJava虚拟机规格说明供应商
java.vm.specification.nameJava虚拟机规格说明名称
java.vm.versionJava虚拟机实现版本
java.vm.vendorJava虚拟机实现供应商
java.vm.nameJava虚拟机实现名称
java.specification.versionJava运行环境规格说明版本
java.specification.vendorJava运行环境规格说明供应商
java.specification.nameJava运行环境规格说明名称
java.class.versionJava类格式版本号
java.class.pathJava类路径
java.ext.dirs扩展目录的路径
os.name操作系统名称
os.arch操作系统架构
os.version操作系统版本
file.separator文件分隔符(UNIX上是"/",Windows上是"\")
path.separator路径分隔符(UNIX上是":
",Windows上是";")
line.separator行分隔符(在UNIX和Windows上都是"\n")
user.name用户帐户名称
user.home用户home目录
user.dir用户当前工作目录
默认情况下,资源过滤属性是关闭的,要使用资源过滤必须在下的下面将过滤开关打开:
src/main/resources
true
使用nexus:
通过设置settings.xml的配置来为本地仓库设置镜像:
要配置Maven去查阅Nexus而非中央Maven仓库,在你的~/.m2/settings.xml文件中添加
如例 16.1“为Nexus配置MavenSettings(~/.m2/settings.xml)”的mirror配置,在你将Nexus配置成所有仓库的镜像之后,Maven现在会从本地的Nexus安装查阅,而非
去外面查阅中央Maven仓库。
如果对Nexus有一个构件请求,本地的Nexus安装会提供这
个构件。
如果Nexus没有这个构件,Nexus会从远程仓库获取这个构件,然后添加至远程
仓库的本地镜像。
可以将第三方的JAR包发布到3rd仓库上:
Exec插件:
Mvnexec:
java–Dexec.mailClass=…
Dependency插件:
可以查看依赖关系
跳过失败的单元测试或者测试:
mvntest–Dmaven.test.failure.ignore=true
Mvninstall–Dmaven.test.skip=true
Assebmly插件可以用来对最终分发包进行打包,包括将依赖打进包里面等