网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > Java
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
本月文章推荐
.Java 基本语法(一)——数据类型.
.JAVA生成JPG缩略图.
.JavaMail快速入门(上).
.Java环境中封装多MIDIet程序.
.简单的java socket通讯.
.为什么不能把这个斜线省略掉呢?.
.使用档案文件提高applet的加载速.
.浅析数据源在JDBC中的应用.
.J2SE应用:JAVA语言关于字符串替.
.Java:Struts入门初步知识.
.1年Java历程的回顾、反思与展望 .
.如何用java来计算对数.
.调整配置实现对Java的应用性能优.
.扩展Eclipse辅助和规范开发流程.
.java和c++比较(1)--虚函数和指针.
.哈希崩溃及避免方法.
.Think in java 3rd 中文版11.
.在Applet中实现事件响应.
.外观模式(Fa?ade pattern)(1).
.在Eclipse中使用SWT进行界面设计.

Maven Goal !

发表日期:2008-1-5


上一篇《maven的POM结构》让人晦涩难懂,一看就是拷贝粘贴的,很没意思。忽然想起了《maven的安装使用》,估计看完总有个问题,那个maven genapp里面genapp是怎么回事?你怎么知道后面跟genapp,而不是genBush,genBullshit?先看看maven都支持什么命令行参数,输入maven -h,我们可以看到有一行如下:
 -g,--goals         Display available goals
我们如法炮制,输入maven -g。救命啊,屏幕发了疯的滚屏,一气输出了725行,(假如对这些输出感爱好,建议你把它输出到文件中仔细观摩,使用命令“maven -g>文件路径”输出到目标文件,然后使用文本编辑器打开就可以了)但是这些输出都是什么呀?

我们看看前八行的输出
1  __  __
2   \/  __ _Apache__ ___
3 \/ / _` \ V / -_) ' \  ~ intelligent projects ~
4 _  _\__,_\_/\_____  v. 1.0
5
6 Available [Plugins] / Goals
7 ===========================
8   genapp  ......................... Generate Application based on a template
9   ...  ...

原来这个genapp是一个叫做goal的东西,不是“进球”的意思。指的是maven能够执行的任务,虽然名字听起来很有噱头,其实跟Ant里面的Task差不多,而且maven的goal定义里面也可以使用Ant里面的Task定义,就是诸如delete,mkdir,echo之类的Ant的Task,maven也可以照单全收,直接使用。从刚才maven -g我们可以看到maven支持如此众多的goal,也就是说已经替我们定制了一大堆门类齐全的goal供我们使用,甚至包括对JBuilder,Eclipse这样IDE的支持,可以生成它们特定的工程格式。所以maven支持的参数除了预定义的(可以用-h查看)还有就是定义好的goal。

这些goal的定义都在maven的plugins目录里面,我们看到一大堆名字怪诞的jar文件,我们随便
找一个撬开一看,里面一般的文件结构如下:

--<META-INF>
--plugin.jelly
--plugin.properties
--project.properties
--project.XML
--...

其实四个文件里面,只有plugin.jelly和project.xml是必须具备的,最后的省略号是说有的plugin里面还要有相关支持类包或者资源包,资源包通常叫做plugin-resources。这个jelly是Apache的一个项目(怎么又冒出来一个?),不过我们就把它当作普通的xml文件看待就可以了,除非要自制插件,否则很少接触。

有了这么强大的支持,就像编程有了强大丰富的库支持一样,我们可以省心省力了,但是假如我们觉得这些还不够用,或者我们要加点小花样怎么办?

首先要想到的就是----对了,去网上找,找符合要求的插件,SourceForge网站上还专门有一个的 Maven插件的项目,还有maven的主页的插件列表,都是提供插件资源的地方。

假如还是找不到,那就要考虑扩展已有的goal或者自定义goal。在工程文件夹定义一个文件maven.xml,这个文件是专门用来自定义goal的,所以一般工程可以没有这个文件。

文件大致框架如下:

      <project xmlns:j="jelly:core">
        ...
        <goal name=...>
          ...
        </goal>
        ...
        <preGoal name=...>
          ...
        </preGoal>

        <postGoal name=...>
          ...
        </postGoal>

      </project>

注重:文件头部不用<?xml version="1.0" encoding="ISO-8859-1"?>这样的声明。

<goal>标签是用来自定义goal的,扩展goal用<preGoal>和<postGoal>标签,从名字上就可以看出来,<preGoal>要定义 <preGoal name=...>中的name指定的goal在执行前要做的动作。而<postGoal>则是定义相应goal执行后要做的动作。

上一篇:int和byte数组的转换 人气:1766
下一篇:应用Rational 工具简化基于J2EE的项目 人气:547
浏览全部Java的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐