Ant入门教程

新能源知识库(62)组串式、集中式和高压直挂式 因需多台PCS及独立监控设备,单位功率成本比集中式高15%–20%。高压直挂式因省去变压器,大容量项目成本更低(>5MW时优势显著)。组串式储能、集中式储能和高压直挂式储能是当前主流的三类技术路线,其核心差异源于系统架构和控制逻辑的设计差异。组串式交流侧需变压器升压至10kV/35kV,高压直挂式可直接输出6kV/35kV电压,减少转换损耗。多台小功率PCS并联(每簇独立管理)单台大功率PCS(多簇直流侧并联)环流导致容量衰减(损失5%–8%)无变压器损耗(效率>99%)高压直挂电站(≥10MW) 阅读详情

   

1. Ant简介:这里引用Ant帮助文档中对Ant的介绍:

      Apache Ant是一个基于Java的构建工具。从理论上讲,也是一种类似于Make的工具,只是去除了Make工具的缺点。
    
      既然已经有了make, gnumake, nmake, jam以及其他的构件工具,为什么还要Ant呢?因为Ant的早期开发者发现所有以上这些工具都或多或少的有一些局限性,使得在跨平台开发软件成为困难。类似于Make的工具都是传统的基于Shell的--首先进行依赖性检查,然后执行命令。这意味着你可以轻易的通过使用或者编写程序来扩展这些工具,以满足不同的平台。当然,这也意味着你将局限于特定的平台,至少可以说局限于特定类型的平台,例如:Unix平台。
                                                                                      
     同时,Make文件也有一些先天的缺陷。好多人都会遇到恐怖的tab问题。Ant的最初开发者多次说“我的命令不能执行因为我在tab前面加了一个空格!”。一些工具如Jam一定程序上解决了这个问题,但仍有其它的格式问题。
     Ant与从基于命令的那些扩展开来的那些工具不同,Ant是由java类扩展的。不用编写shell命令,而是配置基于XML的文件,形成多个任务的目标配置树。每一个任务都是通过一个实现了一个规定接口的java类来运行的。

     ant缺少了一些直接执行shell命令的能力,如find . -name foo -exec rm {},但它给用户提供了跨平台的能力,可以在任何地方工作。实际上,Ant也提供了命令execute用来执行shell命令,这就是它的任务,它允许执行基于操作系统的命令。
    简单的说,Ant是一个基于Java,并且主要用于Java工程的构建工具。Ant本意是Another Neat Tool,也就是另一种整洁的工具,取首字符就是Ant。
构建工具就是为了减少重复工作而产生的。

2.Ant的一些核心概念:
     XML: 构建文件是以 XML 文件来描述的,采用 XML 格式有很多好处。这里就不一一列举。
     陈述式语法:构建文件短小精悍,且易于理解。
     每个构建文件包含一个工程 (project) 。
     每个工程包含若干个目标 (target) 。
     目标可以依赖于其他的目标 (depends) 。
     目标包含任务 (task) 。
     易于使用 Java 语言增加新的任务 --- 易于扩展(自定义)。
3.Ant结构:
     Ant 的结构如下图所示:


      构建文件的概念视图:工程包含一个目标的集合。在每个目标里是任务的声明,它们是对 Ant 用于构建该目标的行为说明。目标生成一个依赖关系图表来声明该目标的依赖关系。 当执行一个目标时,必须先执行它们依赖的目标 。
 
例子:一个典型的构建文件:
 
 
该构建过程如下:
    系统初始化1、编译  2、生成JAVADOC   4、打包  5、上传到FTP,其中后两步结合到一起叫部署。
 
    执行时输出如下:
 

      在执行时使用命令行参数以传入一个属性文件,属性文件中包含连接FTP服务器使用的服务器名,用户名,用户密码来给 特性使用。
这个例子很好的展示了Ant的一些基本要素:目标依赖、特性的使用、编译、文档生成、JAR打包(tar,Zip,WAR,EAR等),最后是部署。
 
      Ant的简单任务(<mkdir>)都是由Java类库来实现相应的功能。而一些复杂的任务<ftp>、<junit>还需要第三方库的支持。
 
      Ant的一个强大之处:它总能工作。只要正确的指定构建文件,Ant就能计算出目标的依赖性,并且按照正确的顺序调用目标。目标通过任务按序执行,而任务自身处理其文件依赖性以及实际的操作来完成工作。因为每个任务通常都是在高层陈述,所以一两行XML语句经常就已经足够描述任务的内容。
 
4.下载并安装Ant
     使用Ant前提条件,系统中已经安装JDK以及Ant。在文档编写之时,Ant的最新版本是Ant 1.7,但是为了稳定性,本文档使用版本为Ant 1.6.5.
     首先下载Ant,到apache软件网站 http://www.apache.org/。
     其次,解压缩文件,放到指定的系统目录中,例如C:/Ant。
     再次,将其添加到path,以便从命令行使用。(一些IDE,例如Eclipse可以不需要设置path,而通过IDE相关设置将Ant添加到path中。)
     再次,设置一些环境变量指向JDK以及ANT。
     最后,添加需要的可选库。
 
在Windows安装过程(以笔者的安装过程为例)
    下载apache-ant-1.6.5-bin.zip到本地硬盘,解压缩之后将文件夹命名为Ant,放在C:/Ant中。这个目录就是Ant主目录。
应该将主目录中的bin目录添加到path属性中,这样就可以在命令行中调用ant命令,ANT_HOME是批处理文件所在目录的上级目录。最好明确设定。
    现在许多工具已经集成了特定版本的 Ant ,一些操作系统甚至默认的已经安装了 Ant 。所以,你的系统中可能已经安装了 Ant 。
首先可以通过运行以下命令: ant -version 和 ant -diagnostics 
来确定。我们推荐您不设置CLASSPATH来运行Ant命令。如果任何版本的Ant可以从CLASSPATH加载 ,这时就会由于加载了不兼容的类而产生许多错误。
 
一些其他问题请参阅Ant的FAQ设置。
      正常情况下,执行ant ?Cversion即可显示Ant版本,则说明安装配制成功:

 
5. 运行第一个构建文件:
首先创建一个Java工程,名为AntProject,工程中源文件和目标文件是分开的,分别为文件夹src和bin,然后创建一个Java类文件,类名为
com.neusoft.test.AntTest,只是为了测试,所以类的内容很简单:
 
 
然后我们在工程的路径下面建立一个构建文件 build.xml ,内容如下:
 
构建文件说明如下图:


关于XML的知识,请参考其他书籍,这里不做介绍。
以上创建完成后,目录结构如下图:

 
      Ant构建文件总是有一个<project>元素做为根元素,它有两个属性,name和default,<target>元素是<project>元素的子元素,可以有多个,它有两个属性,name和depends,<target>元素包含的元素就是一些任务元素。
     <target>可以由命令行进行显示的调用,也可以在内部使用如可以直接调用ant init、ant compile等。如果不写参数,则默认的build文件是build.xml,默认的目标是<project>的default属性定义的目标。目标的名称是唯一的,可以是任意字符串。
 
下面我们先运行一下这个Ant构建,再讲解其他的内容,进入工程目录,执行
ant
这里就相当于执行默认的目标,也就是<project name="structured" default="archive" >中的archive目标。

 
这里说明了首先初始化创建两个目录,然后编译了一个JAVA文件,然后进行了打包的操作。
 
这里讲解一下如果构建失败了怎么办?
      首先有可能是XML语法书写不正确(将<target>写成<targe>),或者在任务执行过程中出现了错误(.java文件中包含编译错误),或者任务名称书写错误(将<javac>写成<javacc>)等等,这些都不是Ant的错误,不需要填写Bug Report。写XML时一定要细心,一些IDE已经有验证功能,可以很好的防止书写的错误。
 
出现错误时,可以使用
       ant -verbose 或者 ant -debug来获取更加详细的构建信息,以解决问题。
下图是使用ant -verbose时的输出,使用ant -debug将获取比这更详细的信息,这里就不举例了。

 
      本例中直接使用了软件工程中的构建结构,使用src作为源文件目录,build/class作为中间生成文件,以dist作为可发布文件。在最后把一些可执行文件可以放在bin目录中。此时目录结构如下图所示:

 
      我们需要一种办法来确定某些任务先执行,而有些任务后执行,比如必须先编译,才能执行程序或者打包。我们在声明目标的时候,就在其依赖属性中列出其依赖关系:
<target name="compile" depends="init" >
<target name="archive" depends="compile" >
<target name="clean" depends="init">
如果一个目标依赖与多个其他目标,需要将它们都写到依赖属性中,例如:
depents=”compile,test”。在我们的构建中,archive依赖于init和compile,但是我们不需要去写,因为compile已经依赖于init了。即:Ant的依赖关系是传递的,但不是自反的。


如果在执行过程中两个目标共享同一个目标,则先导目标只被执行一次。
可以通过指定目标来运行构建:
例如执行完ant后,可以执行ant clean来清理构建:

 
ant等价于ant archive
ant init
ant clean
ant compile
ant archive
ant clean archive
 
当构建完成一次以后,再次执行构建会发生什么呢?

 
第二次执行构建时只花了2s,相比第一次的4s。并且没有任何一个目标表示做了任何工作。
原因如下:所有的任务都检查了它们的依赖关系:
<mkdir>没有创建目录因为已经存在
<javac>比较了源文件和类文件的时间戳
<jar>比较了要被加入文件与已经存在文件的时间
只有更新的时候才进行任务执行。
 
Ant 如何处理命令行上的多个目标?
执行ant compile archive会怎么样?
先实验一下:

 
Ant依次执行每个目标和其依赖目标,即Ant的执行顺序是init compile init compile archive,虽然这样看起来增加了额外的工作,但是通过上面的执行过程就会发现,由于其依赖性检查的阻止,第二次的init和compile并未真正的执行,执行时间与直接执行archive的时间是一样的。
 
运行程序:
普通执行该类的方法是:
java ?Ccp build/class com.neusoft.test.AntTest args1 args2
而我们使用Ant的任务来执行它仅仅需要增加一个任务,好处在于:
让用于执行的目标依赖与编译的目标,确保运行最新版本
易于传递复杂参数
设置classpath更方便
在Ant自身的JVM中运行,载入更快
增加一个新的目标:
<target name="execute" depends="compile">
<java classname="com.neusoft.test.AntTest"
classpath="build/classes">
<arg value="a"/>
<arg value="b"/>
<arg file="."/>
</java>
</target>
 
最后一个参数是file=”.”,表示传入的参数是一个目录,为文件绝对路径。
运行该目标,输出如下:

 
Ant命令行选项:
 
请参阅相关手册进行查询相关选项的功能。
 
当有多个构建文件时,可以指定构建文件:
ant ?Cbuildfile build.xml compile
来表示执行build.xml这个构建文件中的compile目标。
 
控制提供的信息量:
ant ?Cquiet:安静模式,不给出任何输出。

 
ant ?Cemacs:简单模式,不显示任务名称。

 
ant ?Cprojecthelp:获取项目信息。

 
最终的构建文件,添加了 description 属性。
<?xml version="1.0" ?>
<project name="secondbuild"  default="execute" >
<description>Compiles and runs a simple program</description>
<target name="init">
<mkdir dir="build/classes" />
<mkdir dir="dist" />
</target>
<target name="compile" depends="init"
description="Compiles the source code">
<javac srcdir="src" destdir="build/classes"/>
</target>
<target name="archive" depends="compile"
description="Creates the JAR file">
<jar destfile="dist/project.jar" basedir="build/classes"/>
</target>
<target name="clean" depends="init"
description="Removes the temporary directories used">
<delete dir="build" />
<delete dir="dist" />
</target>
<target name="execute" depends="compile"
description="Runs the program">
<echo level="warning" message="running" />
<java classname="org.example.antbook.lesson1.Main"
classpath="build/classes">
<arg value="a"/>
<arg value="b"/>
<arg file="."/>
</java>
</target>

</project>

 

生信人的一天~HIFI数据+HIC数据组装基因组 HIFI+HIC数据组装基因组! 阅读详情

相关推荐

ZEMAX学习 6.一个照相物镜的设计

曲线越平滑表示场曲越小,曲线越接近水平,系统边缘与中心对比度越接近,虚实越接近表示色差和色散越好;第1个面设计不合理,出现前后表面相交的情况,点击第1面厚度,选择边缘厚度,设置为0.1,第1面厚度被控制在0.1mm厚,系统根据这一设置始终保持第1面边缘厚度为0.1mm。要求:设计一个照相物镜,焦距f=9mm,F#为4,视场角40°;添加有效焦距操作数EFFL 9mm 权重为1,设置优化变量,如下图,ctrl+shift+o打开优化界面。报告中系统数据有效焦距为67.381mm,设计要求为9mm;

qq_24542783的博客 4713

ant入门教程

ant入门教程一、概述二、优点三、安装和配置四、测试ant五、ant的运行时环境六、ant命令七、ant脚本:使用节点、元素和属性、命令指令1、project 节点元素2、target节点元素3、property属性节点元素4、copy命令5、delete命令6、 mkdir 命令7、 move 命令8、echo 命令9、jar 标签节点元素10、javac 标签节点元素11、java 标签节点元素12、arg 数据参数元素13、ervironment 类型14、filelist 文件集合列表15、file

Orchestrator_me的博客 2089

C51:PWM+舵机角度控制

PWM,英文名Pulse Width Modulation,是脉冲宽度调制缩写,它是通过对一系列脉冲的宽度进行调制,等效出所需要的波形(包含形状以及幅值),对模拟信号电平进行数字编码,也就是说通过调节占空比的变化来调节信号、能量等的变化,占空比就是指在一个周期内,信号处于高电平的时间占据整个信号周期的百分比,例如方波的占空比就是50%.脉冲宽度调制通过占空比编码模拟信号一个周期内,高电平占据时长的百分比如下图所示,最便宜的舵机sg90,常用三根或者四根接线,黄色为PWM信号控制。

qq_73379310的博客 3390

ant教程

ant 的详细的入门教程 Ant是一个Apache基金会下的跨平台的构件工具,它可以实现项目的自动构建和部署等功能。在本文中,主要让读者熟悉怎样将Ant应用到Java项目中,让它简化构建和部署操作。  一.             安装与配置 下载地址:http://ant.apache.org/,在本文中下载的是1.7.0版本。解压到某个目录(例如E:"apache-ant-1.7.0

zhaofuqiangmycomm的博客 561

PADS VX2.4差分对设置避坑指南:常见错误与解决方案

本文深度解析了在PADS VX2.4中进行高速PCB设计时,差分对设置的核心要点与常见陷阱。针对Layout规则设置、Router布线实战中的阻抗控制、线长匹配等关键环节,提供了具体的避坑指南和解决方案,帮助工程师确保信号完整性,提升设计质量。

weixin_29216049的博客 361

STM32F103四位数码管动态显示实战:从硬件连接到代码调试(附Proteus仿真)

本文详细介绍了STM32F103驱动四位数码管的动态显示技术,从硬件连接到代码调试的全过程。内容包括共阴/共阳数码管的区别、GPIO配置、动态显示原理及优化方法,并附有Proteus仿真验证。通过实战案例,帮助开发者快速掌握STM32数码管动态显示的核心技术。

weixin_29168393的博客 470

Apache Ant的使用(1)——基础使用教程

一、什么是Ant 以下介绍来自百度百科: Apache Ant,是一个将软件编译、测试、部署等步骤联系在一起加以自动化的一个工具,大多用于Java环境中的软件开发。由Apache软件基金会所提供。 我们在使用Eclipse开发Android应用时,Eclipse使用的项目构建工具就是Ant。 用户群:大多数的Java设计都被用于管理大量信息流,例如纽约州就使用Apache Ant去管理

记录技术,记录生活 3万+

告别重启烦恼:用WSL2让Docker和VMware在Win10上真正共存

本文详细介绍了如何在Windows 10系统上,借助WSL2实现Docker与VMware的真正共存,彻底告别以往需要反复重启切换的烦恼。通过启用Hyper-V兼容模式并进行正确配置,开发者无需重启即可同时高效运行容器和虚拟机,显著提升开发与测试工作流的连续性和效率。

salt9的博客 988

Ant Design 和前端三大框架的关系

它提供了丰富的组件和模板,旨在提升用户界面设计的效率和用户体验。在梳理公司的前端项目,使用的框架是angular,html文件中写的很多标签都没见过,搜索下才知道使用的是NG-ZORRO库中的标签,更懵了,搜索又发现新的名词 Ant Design,头皮发麻了,但这难不倒好学的我(真话我不说),于是整理下它们与前端三大框架之间的关系。博主主要是搞后端的,最近公司前端离职了,接手了前端的活,是个前端小白,边学习边记录,要是有啥问题欢迎大家指出来!

qq_36955155的博客 1169

【图像超分】论文复现:轻量化超分 | 残差特征蒸馏网络RFDN的Pytorch源码复现,跑通源码,整合到EDSR-PyTorch中进行训练,补充CCA的实现!

本文介绍了将RFDN(残差特征蒸馏网络)整合到EDSR-PyTorch框架中的实现过程。主要内容包括:1)环境配置与数据集准备;2)测试源码提供的x4预训练模型,并通过修改图像裁剪函数解决HR与SR尺寸不一致问题;3)训练过程详解,包括将RFDN源码模块整合到EDSR框架中,调整模型参数输入方式。文章还提供了完整的代码实现、训练好的模型权重下载链接,并对RFDN架构进行了详细拆解与注释。通过将RFDN与EDSR相结合,实现了轻量级图像超分辨率重建,获得了PSNR/SSIM等指标及可视化结果。

主要更新底层视觉(去噪、超分等)相关的科研内容,形式为【论文精读】+【论文复现】 433

工业级4~20mA转0~3V信号调理电路原理图设计,已量产(电流传感器)

在工业现场,4~20mA 电流信号是模拟量传输的 “老熟人”—— 抗干扰强、能跑长距离,但嵌入式 MCU 的 ADC 一般只认电压信号。最近做项目时,我设计了一款能覆盖 0~25mA(含超量程冗余)、线性输出 0~3V 的调理电路,经过现场调试挺稳定,分享下细节。

不脱发的程序猿 528

ant design pro模板_ant design pro超详细入门教程

1、Ant Design Pro 初了解说到ant design pro,得先了解一下ant design是个什么东西?ant design蚂蚁金服基于react打造的一个服务于企业级产品的UI框架。而ant design pro呢?就是基于Ant Design这个框架搭建的中后台管理控制台的脚手架 。2、安装默认你本地已安装好node和git环境$ git clone --depth=1 ht...

weixin_39669769的博客 3318

#systemverilog# 之 event region 和 timeslot 仿真调度(二)例子

由于疫情的关系,一时半会回不了学校了。今天开始,哪怕在家也要克服惰性开始学习了。今天来个的想了很久但都犯懒而没动手的内容,就是关于仿真软件在跑systemverilog的时候,是如果通过将HDL代码分成5个区域来编译,从而实现用软件模拟硬件的运行结果的思想。 首先,是基础概念,systemverilog标准划分了仿真软件的5个跑仿真所要执行的区域,说白了就是规定了软件在跑代码的时候要把代码分成5类,放到5个堆栈里面分别跑,这样才能:明明在软件上是以顺序方式来执行代码的,却能“看似”像在硬件中那样的实现并行

那么菜的博客 1765

【React】Ant Design Pro 上手入门教程

全面讲解antd-pro上手入门教程

silverclayz的技术分享 2356

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Ant入门教程之属性介绍

一、编写一个简单的构建文件Ant的构建文件都写在XML中。每个构建文件包含一个project和至少一个(默认值)target。target包含了一些task元素。每一个task元素可以有一个id属性(attribute)可以被引用。二、Project一个project有如下三个属性(attribute):1、name属性    用于指定project元素的名称。2、default属性    用于没

itmyhome的专栏 3084

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

ant design入门_Ant Design of React 超详细入门教程

关注米兜Java并置顶,一起涨姿势~关注米兜Autumn2020热点推荐1为什么我应当使用Apache OpenOffice?2Ant Design of React - 项目实战3Ant Design of React - 快速上手4Ant Design of React - 入门了解Ant Design of React - 超详细入门教程一、Ant Design Pr...

weixin_30661119的博客 1581

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

ant 编译java_Ant入门教程(编译打包发布java项目)

最近在用Ant部署和测试java项目,于是把Ant入门教程整理出来供大家分享,附带一个java项目编译的模版例子Ant编译文件build.xml见附件安装Ant1.在path路径中加入ant/bin目录;2.设置ANT_HOME为安装目录;3.通常还要设置JAVA_HOME为JAVA的安装路径。使用Ant1。写一个简单的编译文件Ant的编译文件是写成XML格式的,每一个编译文件包含一个projec...

weixin_42385265的博客 680

ant design入门_Umi + ant Design Pro最简单的入门教程(一)初

前言umi,中文可发音为乌米,是一个可插拔的企业级 react 应用框架。这个库入门的门槛比较高,umi是这个样子的,umi = react + redux + react-router + ts + dva + umi脚手架 + ant Design Pro + ant Design UI + umi-block。如果你没有丰富的react基础你来学习他或者是看懂它,那将是很困难的一件事,本博客...

weixin_42202078的博客 2707

ant java delete_ant 入门教程

ANT环境变量设置说明:--->配置ANT环境变量前,还须配置JAVA的环境变量.JAVA_HOME=....PATH=%JAVA_HOME%\bin;CLASSPATH=.;%JAVA_HOME%\lib\tools.jar;Windows下ANT用到的环境变量主要有2个,ANT_HOME 、PATH。设置ANT_HOME指向ant的安装目录。设置方法:ANT_HOME = D:\apac...

weixin_42526417的博客 282

ant design pro模板_Ant Design Pro入门教程,安装,运行(V5 Typescript版)

【前言】找了很多Admin模板,最后还是看中了AntDesignPro这个阿里巴巴开源的Admin框架,长这样(还行吧,目前挺主流的):该套模板是使用了React开发框架作为基础,AntDesign(蚂蚁金服开源UI组件库)作为UI库,集成了Dva,Umi,Mock等库,如果不是很了解这些内容,门槛还是比较高的,下面我们梳理一下从零开始运行起来这个项目的过程。【准备环境】node js 安装最新版...

weixin_39658726的博客 699

Apache Ant入门教程——基础使用教程

ant 是一个将软件编译、测试、部署等步骤联系在一起加以自动化的一个工具,大多用于Java环境中的软件开发。在实际软件开发中,有很多地方可以用到ant。

不古的博客 3万+

ANT入门教程

本内容包含了Ant的历史简要介绍,Ant的功能以及Ant框架的介绍,并对下载安装使用Ant进行了示例介绍,同时通过一个Java程序讲解了Ant的基本使用方法。1.       Ant简介:这里引用Ant帮助文档中对Ant的介绍:     Apache Ant是一个基于Java的构建工具。从理论上讲,也是一种类似于Make的工具,只

yiyu986 519
上一篇: 什么是JMS(Java消息服务)
下一篇: 用java API制作可执行JAR文件
javaActor
博客等级 码龄17年 22粉丝 42原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值