`

翻译:JavaScript and Ant

阅读更多

这则教程是使用Ant的JavaScript和XSLT的汇总,阅读对象适合于中高级的WEB界面开发者。简述之,见笑了。

这则教程来自于Ant使用的邮件列表和手册,社区和论坛提供了更多的和更新的资讯,如果有一些涉及到不公开和版权的问题,请联系作者修改内容。

本文档中所有的邮件地址都做了反网络爬虫处理,替换at为@就是真正的邮件地址。

警告:不对本文的正确性、及时性以及由本文造成的损失负责。本文版权属于开源社区,可以自由拷贝、修改、转帖,请对自己复制和转发等行为负全责。

最新文档参见:http://www.sitepen.com/ant/javascript.html.

 

啥是Ant?
Apache Ant是一个构建工具,有N多用户使用。总的来说是非常适用于经常需要客户端界面开发的人,特别是处理巨多页面的开发者,比如某君经常需要处理SSI、php、asp或者jsp页面。当然了,也很适合构建一个XSLT的站点(比如XALAN)。如果你对Ant不熟的话,先读手册,看看咋安装、咋使用。

为啥要说Ant里面的JavaScript?
Ant并不具备向递归这样的标准程序指令,不过包含了你可以使用你熟悉语种的预构建任务。JavaScript很容易使用,广为人知,也就很容易添加到Ant扩展里面去。

添加JavaScript到Ant里面去
从mozilla上下载Ant可选jar包:bsf.jar、rhino.jar(重命名成js.jar和rhino.jar),添加到classPath里面去,注意老版本Ant可能不支持,所以版本号要搞对,不要混搭。

添加Ant的XSLT
要添加一个XSLT解析引擎,比如Xalan-J-2,你要下载并配置一下:要添加xalan的jar包到ant的classPath下面。

Hello World例子
看看这个Hello World例子,必须的:

<project name="helloWorld" default="main" basedir="."> 

<target name="setup">
<script language="javascript"> <![CDATA[

       echo = helloWorld.createTask("echo");
       main.addTask(echo);
       echo.setMessage("Hello World!");

   ]]>
</script>
</target>

<target name="main" depends="setup"/>
</project>

generates: 

setup: 

main: 
Hello World! 

BUILD SUCCESSFUL

 

要把JavaScript引入到Ant里面去,就要像使用XML标签一样使用一个script标签。要定义脚本语言,使用老式的语言定义方法也可以,比如设置一个src属性在script标签里面。

生成对象
要让Ant做更有去的事情,就要访问properties、targets、和references,怎么搞,看手册。

project.getProperty(string propertyName); 
project.getUserProperty(string propertyName); 
project.getTarget(string targetId); 
project.getReference(string refereceId); 

 

project可以通过getProject()取得,返回这个可以打日志和其他使用扩展的script task。

如果你搞了重名或者重ID的东西,那么只有最后一个才生效。

 

XSLT Task
要使用标准的XSLT task,需要一个输入和一个输出文件,把参数传给样式表,见下:

<style in="src/webProject.xml" out="temp/index.html"
        extension="html" style="webSite.xsl" processor="trax">
 <param name="pageId" expression="com.sitepen.pages.home"/>
</style>

 

要处理整个文件夹的文档,就要这么搞:

<style basedir="." destdir="temp"
extension="html" style="style/webSite.xsl"/>

 

也可以传N多参数:

<project name="siteBuilder" default="deploy" basedir=".">

   <target name="init">
      <property name="runDir" value="." />
      <property name="varsDir" value="vars" />

      <property name="sourceDir" value="src" />
      <property name="outputDir" value="www" />
      <property name="tempDir" value="temp" />

      <property name="tokenValues" value="tokenValues.properties" />

      <property file="${varsDir}/${tokenValues}" />

   </target>

   <target name="clean" depends="init">

      <delete includeEmptyDirs="true" >
          <fileset dir="${outputDir}" />
      </delete>
   </target>

   <target name="prepare" depends="clean">
      <mkdir dir="${outputDir}" />

   </target>

   <target name="compile" depends="prepare">

      <copy todir="${tempDir}">

         <fileset dir="${sourceDir}">
            <exclude name="**/*.html"/>

         </fileset>
      </copy>

   <script language="javascript">
      <![CDATA[
     importClass(java.io.File)
        xslt = siteBuilder.createTask("style");
        runDirectory = siteBuilder.getProperty("runDir");
        tempDirectory = siteBuilder.getProperty("tempDir");
        inFile = new File(runDirectory + "/webProject.xml");
        outFile = new File(tempDirectory+"/index.html");
        xslt.setStyle("webSite.xsl");
        xslt.setIn(inFile);
        xslt.setOut(outFile);
        xslt.setProcessor("trax");
        idParameter = xslt.createParam();
        idParameter.setName("pageId");
        idParameter.setExpression("com.sitepen.pages.home");
        xslt.execute();

     ]]>

   </script>

   </target>

   <target name="deploy" depends="compile,init">
      <copy todir="${outputDir}">
         <fileset dir="${tempDir}">

            <exclude name="**/*.xml"/>

         </fileset>
      </copy>
      <delete includeEmptyDirs="true" >
          <fileset dir="${tempDir}" />
      </delete>

   </target>

</project>

 

 

用JavaScript去遍历一个properties文件
*** 我还没试过,因为看起来property文件必须要有一定的特征(NND,这什么玩意,看不懂) ***

用Task来循环
Ant本身是不支持循环机制的,所以很多人就用JavaScript来做到循环。比如可以创建一堆文件夹:

<![CDATA[
importClass(java.io.File); //Java class needed for file creation
var directoryNames = new Array();
directoryNames[0] = "directoryName0";
directoryNames[1] = "directoryName1";
directoryNames[2] = "directoryName2";
// … and so on
// in this example, the directory path is stored as part of the directory name.
for (i=0;i<directoryNames.length;i++)
{
// projectName is the name of your project
makeDirectory = projectName.createTask("mkdir");
directory = new File(directoryNames[i]);
makeDirectory.setDir(directory);
makeDirectory.execute();
}

]]>

  

原文在:http://www.sitepen.com/blog/2001/09/25/javascript-and-ant/

 

分享到:
评论

相关推荐

    二阶段:JavaScript程序设计

    二阶段:JavaScript程序设计二阶段:JavaScript程序设计二阶段:JavaScript程序设计二阶段:JavaScript程序设计二阶段:JavaScript程序设计二阶段:JavaScript程序设计二阶段:JavaScript程序设计二阶段:JavaScript...

    Ant构建中使用JS脚本方法

    在Ant构建过程中,JavaScript脚本方法的使用是一个强大的工具,它允许开发者自定义构建过程,实现更复杂的逻辑和任务自动化。Ant是一个Java库和命令行工具,它的设计目标是驱动软件构建过程,尤其是在Java项目中。这...

    编程实践:JavaScript进阶100例

    JavaScript,作为全球最广泛使用的脚本语言之一,是构建网页动态功能和交互性的基石。《编程实践:JavaScript进阶100例》是一份专为初级JavaScript学习者设计的资源,旨在通过丰富的实例帮助初学者深入理解这门语言...

    Learn by Example: JavaScript for Front-End and Mobile App Development

    Instead of learning Swift for ios and Java for Android, just learn JavaScript and make apps for ALL platforms using Apache Cordova. This book also covers everything you need to know in order to use ...

    Beginning JavaScript with DOM Scripting and Ajax: Second Editon

    Common Uses of JavaScript: Image and Windows JavaScript and User Integration: Navigation and Forms Back-End Interaction with Ajax and Node.js Data Validation Techniques Modern JavaScript Case Study: A...

    admin:admin (ant-design)项目

    翻译招聘 :loudspeaker: 我们需要您的帮助: https : //github.com/ant-design/ant-design-pro/issues/120 特征 :gem_stone: 整洁的设计:遵循蚂蚁设计规范 :triangular_ruler: 通用模板:企业应用程序的典型...

    单页Web应用:JavaScript前端到后端 源代码

    本资源包含的"单页Web应用:JavaScript前端到后端 源码"是对此技术的全面实践,适合JavaScript开发者和前端工程师学习和研究。 一、JavaScript在SPA中的核心作用 JavaScript是构建SPA的基础,它负责处理页面的动态...

    JavaScript权威指南(第6版).JavaScript:The.Definitive.Guide

    Since 1996, JavaScript: The Definitive Guide has been the bible for JavaScript programmers—a programmer's guide and comprehensive reference to the core language and to the client-side JavaScript APIs...

    单页Web应用:JavaScript前端到后端--源代码

    单页Web应用:JavaScript前端到后端的源码下载,提供了全部的源代码供javascript及前端爱好者们研究! 新增了第二章javascript知识温故代码,主要有类与原型,作用域、原型链、运行环境、函数和闭包的定义和实例使用...

    ppo是一个用于JavaScript的超小型且有用的utils库:honeybee::ant:-JavaScript开发

    ppo是用于JavaScript的超小且有用的utils库:honeybee::ant:概述每个前端开发人员都编写了自己的utils库,我们经常编写容易被遗忘和高度使用的方法。 ppo是一个超小型且有用JavaScript实用程序库。 它和lodash强调...

    JavaScript—The Definitive Guide, 6th Edition[JavaScript权威指南](英文版)

    经典的JavaScript教程 《O'Reilly精品图书系列:JavaScript权威指南(第6版)》讲述的内容涵盖JavaScript语言本身,以及Web浏览器所实现的JavaScriptAPI。《O'Reilly精品图书系列:JavaScript权威指南(第6版)》涵盖了...

    单页web应用:javascript从前端到后端(源码)

    在设计和构建大规模的JavaScript单页Web应用时,有几个关键知识点需要掌握: 1. **前端框架**:前端框架如React、Vue或Angular是SPA的基础,它们提供组件化开发,状态管理,路由等特性,简化了复杂应用的构建。例如...

    manning_-_java_development_with_ant.pdf

    3. **第3章 Understanding Ant datatypes and properties** - **简介**: 介绍Ant中的数据类型和属性的概念及其用途。 - **知识点**: - Ant支持的数据类型及其使用场景。 - 属性的定义、获取和传递方法。 - 如何...

    Murach.Murachs.JavaScript.And.JQuery

    但我可以针对书名《Murach's JavaScript and jQuery》介绍这本书中涵盖的知识点,以及JavaScript和jQuery的基本概念和应用。 《Murach's JavaScript and jQuery》是由Mike Murach和Associates, Inc.出版的一本书籍...

    2018 年 JavaScript 的未来及远方

    “The Future of Javascript 2018 and Beyond,” offers our future-looking analysis and predictions about the latest in JavaScript. We also look back at all the JavaScript craziness from 2017 and neatly ...

    [JavaScript权威指南(第6版)].(JavaScript:The.Definitive.Guide).David.Flanagan.文字版

    - **AJAX**:即Asynchronous JavaScript and XML,是一种在不重新加载整个网页的情况下更新部分网页的技术。 ##### 2. **Lexical Structure**(词法结构) - **2.1 Character Set**(字符集):JavaScript支持...

    Pro JavaScript Techniques(jQuery之父作品:精通Javascript英文原版+源码)

    《Pro JavaScript Techniques》是John Resig,也就是jQuery之父的作品,这本书深入探讨了JavaScript编程的各种高级技巧和实用方法。本书的出版商是Apress,它并非普通的扫描版,而是高质量的原版电子书,旨在为读者...

    Learn JavaScript and Ajax with w3Schools.pdf

    综上所述,《Learn JavaScript and Ajax with w3Schools》这本书旨在提供一个系统的学习指南,帮助读者从基础到高级逐步掌握JavaScript及其在网络应用开发中的实际应用,特别是在Ajax技术方面的使用。通过本书的学习...

    lingoes 翻译 中文+javascript

    《lingoes 翻译 中文+javascript》 在IT领域,翻译工具是开发者们不可或缺的辅助工具,其中Lingoes(灵格斯词霸)因其强大的翻译功能和丰富的词库而广受好评。本资源涉及到的是Lingoes在处理JavaScript相关文档时的...

Global site tag (gtag.js) - Google Analytics