IBM®
跳转到主要内容
    中国 [选择]    使用条款
 
 
Select a scope: Search for:    
    首页    产品    服务与解决方案     支持与下载    个性化服务    
跳转到主要内容

developerWorks 中国  >  Java technology  >

项目管理: Maven 使事情变得简单

基本 Jelly 编程

developerWorks
文档选项

未显示需要 JavaScript 的文档选项


级别: 初级

Charles Chan (charlesc@ibiblio.org), 高级软件开发人员, Finetix LLC

2003 年 5 月 01 日

Maven 的许多构建能力来自 Jelly,Jelly 是一种基于 Java 技术和 XML 的脚本编制和处理引擎。Jelly 的特点是有许多基于 JSTL (JSP 标准标记库,JSP Standard Tag Library)、Ant、Velocity 及其它众多工具的可执行标记。Jelly 还支持 Jexl(Java 表达式语言,Java Expression Language),Jexl 是 JSTL 表达式语言的扩展版本。

返回至文章。

让我们查看一个简单的 maven.xml 文件,然后讨论其 Jelly 功能。

清单 1. 用 Jelly 编写的样本构建脚本

      <?xml version="1.0" encoding="ISO-8859-1"?>
      <project xmlns:j="jelly:core">
        <goal name="Echo Dependencies">
          <j:forEach var="dep" items="${pom.dependencies}">
            
<echo>${pom.getDependencyPath(dep.getId())}</echo>
          </j:forEach>
        </goal>
      </project>
                

上面的代码演示了在 Jelly 脚本中 XML 名称空间如何表示正确的标记库。代码告诉 Jelly: j 名称空间中的所有标记都引用 jelly:core 库中的标记。还需要注意的是,您可以使用表达式 ${pom.dependencies} 来访问 POM 的相关性列表。如果您熟悉 JSTL 或 Struts,您可能会猜到该表达式实际是指 pom.getDependencies() 。Jelly 不但让您通过使用上面的表达式来获取 bean 的属性,而且您甚至还可以象 ${pom.getDependencyPath()} 中那样直接调用 Java 方法。

pom 对象是 POM 的运行时实例,即 Project 类。 forEach 标记提供了简单的循环机制,每次通过循环都执行其标记体。

将来,Maven 可能会提供用于编写插件的纯 Java API,但它仍然会完全支持 Jelly 机制。

注:Jelly 提供的功能比这里展示的要多得多。要获取更多有关 Jelly 的信息,请访问 Jelly 网站(请参阅 参考资料)。

返回文章。



关于作者

Charles Chan 是 Finetix LLC 的一名顾问。Charles 的兴趣包括分布式系统、高性能计算、国际化和软件设计模式。在业余时间,他为开放源码社区做志愿工作。可以通过 charlesc@ibiblio.org与 Charles 联系。




对本文的评价










回页首


IBM 公司保留在 developerWorks 网站上发表的内容的著作权。未经IBM公司或原始作者的书面明确许可,请勿转载。如果您希望转载,请通过 提交转载请求表单 联系我们的编辑团队。
    关于 IBM 隐私条约 联系 IBM 使用条款