<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    zhyiwww
    用平實(shí)的筆,記錄編程路上的點(diǎn)點(diǎn)滴滴………
    posts - 536,comments - 394,trackbacks - 0


    Ant Task Dependency Graphs

    by Jeanne Boyarsky

    When inheriting an Ant build file to maintain, it is useful to get a feel for the flow and structure. Sketching the dependencies between targets is a useful way to do this. While it is time consuming to do so by hand, there are a number of tools to help.

    I tried three different tools to generate the output. All of them generate a .dot file which needs to be run through the Graphviz tool to be converted to a useful format. Graphviz can covert to all image formats among many others. Each tool is described below with an example of how to call it. I've also included two sample images: from our build script to Pick Winners in the weekly book/software promotion and a contrived example designed to show how antCall and forEach work.

    1. Ant2Dot - Ant2Dot is an XSLT file that converts your Ant build file into a .dot file. Each target becomes a rectangle and dependencies between targets are shown. The instructions for using it are a bit old and only apply to Java 1.3 and 1.4. They don't work on Java 5/6 without modification. The website lists a "to do" for adding support for Ant 1.6's import and subant features. Similarly, 1.7 features aren't supported yet. Ant2Dot is good for simple build files, but doesn't scale up to handle use advanced features. Running was as simple as downloading a stylesheet and running the command:
      C:\j2re1.4.2_03\bin\java org.apache.xalan.xslt.Process
      -IN build.xml -XSL ant2dot.xsl -OUT build.dot
      Output of JavaRanch's book promotion pick a winner dependency structure and a contrived sample:
    2. Vizant - Vizant is a Java library that creates a .dot file by using a SAX parser on your Ant build file. Each target becomes an oval and dependencies between targets are shown. Vizant supports antcalls and allows you to drill down to generate only part of the build tree. You can also drill down to show part of your build tree. Vizant was easy to use. I wanted the dependency ordering so continued looking for a library to meet my needs. In order to run Vizant, you need to download a jar containing the source and build it using Ant. They provide the build.xml to do so. Since this is a library for Ant documentation, it is reasonable to assume people know how to run Ant. You also call it through a simple Ant build file:
      <?xml version="1.0"?>
      <project name="Vizant" basedir="." default="vizant">
      <taskdef name="vizant"
      classname="net.sourceforge.vizant.Vizant"
      classpath="build/vizant.jar" />

      <target name="vizant">
      <vizant antfile="build.xml" outfile="build.dot" uniqueref="true" />
      </target>

      </project>
      Output of JavaRanch's book promotion pick a winner dependency structure and a contrived sample:
    3. Grand - Grand is also a Java library that creates a .dot file. It takes a different approach and actually creates the Ant directory structure using Ant's Java libraries. It can support anything in your classpath including ant-contrib and Ant 1.6's import feature. The logic doesn't capture the subtleties of Ant-Contrib like the forEach loop though. The graph is a bit more detailed. The default target is a yellow hexagon. Targets with a description are marked in blue so you can show entry points. The remaining targets are shown as ovals. You can also drill down to show part of your build tree. You can use a Grand UI tool instead of the dot file, but I wasn't able to get the UI. Like Ant2Dot, dependencies are numbered. Grand was as easy to use as Vizant. They provide you with a jar for download. You call it through a simple Ant build file adding any other jars used to the classpath:
      <?xml version="1.0"?>
      <project name="Grand" basedir="." default="grand">

      <typedef resource="net/ggtools/grand/antlib.xml" classpath="grand.jar" />

      <target name="grand">
      <grand output="grand-build.dot" buildfile="build.xml" />
      </target>

      </project>
      Output of JavaRanch's book promotion pick a winner dependency structure and a contrived sample:
    Comparison of visualization tools
    ToolShows dependency orderingFlags default targetFlags main targets
    Ant2DotYesYesNo
    VizantNoNoNo
    GrandYesYesYes


    |----------------------------------------------------------------------------------------|
                               版權(quán)聲明  版權(quán)所有 @zhyiwww
                引用請(qǐng)注明來(lái)源 http://www.tkk7.com/zhyiwww   
    |----------------------------------------------------------------------------------------|
    posted on 2011-07-21 11:57 zhyiwww 閱讀(1015) 評(píng)論(0)  編輯  收藏 所屬分類: j2ee
    主站蜘蛛池模板: 亚洲AV无码不卡在线播放| 日韩精品亚洲专区在线影视| 亚洲人成亚洲人成在线观看| 国产AV无码专区亚洲AV男同 | 免费国产黄网站在线观看动图| 亚洲狠狠ady亚洲精品大秀| 免费h片在线观看网址最新| 亚洲精品国产肉丝袜久久| 亚洲人成网国产最新在线| 亚洲国产精品一区二区久| 无码专区—VA亚洲V天堂| 亚洲人成网站日本片| 亚洲精品V天堂中文字幕| 国产成人精品免费大全| 18禁美女黄网站色大片免费观看 | 免费一级国产生活片| 最新国产AV无码专区亚洲| 亚洲综合一区二区精品久久| 亚洲精品无码久久久久秋霞| 日韩免费在线中文字幕| 最近中文字幕大全免费版在线 | 亚洲国产精品一区二区三区久久| 在线免费观看毛片网站| 亚洲视频在线一区二区| 国产成人毛片亚洲精品| 91亚洲国产成人久久精品网站| 亚洲国产精品无码久久一线| 国产成人精品亚洲2020| 亚洲三级视频在线观看| 无码日韩人妻AV一区免费l| 精品无码免费专区毛片| 免费欧洲美女牲交视频| 自怕偷自怕亚洲精品| 真正全免费视频a毛片| 99久久久国产精品免费牛牛四川 | 亚洲午夜久久久影院| 亚洲国产高清视频在线观看| 一区二区亚洲精品精华液| 成人免费ā片在线观看| 成人毛片18女人毛片免费96| 日韩高清在线免费看|