maven插件使用

用户可以通过两种方式调用Maven插件目标。

 

maven命令中,带冒号的方式是指定要执行的插件目标。不带冒号的方式是执行生命周期。

 

第一种方式是将插件目标与生命周期阶段(lifecycle phase)绑定

这样用户在命令行只是输入生命周期阶段而已。

例如:Maven默认将maven-compiler-plugin插件的compile目标与compile生命周期阶段绑定,

因此命令mvn compile实际上是先定位到compile这一生命周期阶段,然后再根据绑定关系调用maven-compiler-plugin的compile目标。

 

第二种方式是直接在命令行指定要执行的插件目标。

例如:mvn archetype:generate 就表示调用maven-archetype-plugin的generate目标,这种带冒号的调用方式与生命周期无关

 

插件目标(goal)可以附着在生命周期阶段上。随着Maven沿着生命周期的阶段移动,它会执行附着在特定阶段上的目标。每个阶段可能绑定了零个或者多个目标。

 

二、查看介绍

例如:org.apache.maven.plugins:maven-antrun-plugin

mvn help:describe -Dplugin=antrun -Ddetail (插件的介绍)

mvn help:describe -Dplugin=antrun -Dgoal=run -Ddetail(插件目标的介绍)

autrun为插件的命令名,如archetype:generate中的archetype

 

插件的prefix属性

maven有默认的插件版本,如果要覆盖默认的插件,可以在pom中,重新定义插件版本。

 

 War plugin主要负责web工程的打包

War plugin主要从以上三个地方获取资源,然后进行打包,分别为:

src/main/webapp:

主要是web app的一些资源文件,如图片,javascript,css,jsp,velocity模板等,同时最重要的WEB-INF/web.xml也在这个目录下,这些文件将会被打包至WEB-INF目录下。

target/classes:

项目的class 和resource 文件,将会被打包至WEB-INF/classes 目录下。target/classes目录下的文件都来自于src/main/java和src/main/resources下。

项目的依赖:

项目依赖的jar包将会被全部拷贝到WEB-INF/lib 目录下。

 

接下来进行打包,顺序为:

首先将所有的资源打包到webappDirectory 目录,然后在此目录上生成war 文件,这个目录和war 文件都会在target 目录下,文件名分别为xxx-1.0.0 和xxx-1.0.0.war 这样的命名规范。

在打包的过程中有一个小问题,就是如果对webapp 下的某些文件进行resource filter,如淘宝的不少项目里面会在web.xml中设置一些占位符,这些占位符要求在打包的过程中进行替换,这样才能保证程序的顺利运行。

这里我们需要介入一个webResources的概念,webResources主要是声明要进行resource filter的资源,filter文件就是在resource filter 章节介绍的全局filter 文件。

如下图,我们对象WEB-INF 目录下的所有xml 文件进行过滤,同时要设置下过滤后的资源存放的目标路径(相对于war 的根目录),也就是targetPath:


 

web工程的项目结构



 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值