Ant开发及整合应用详解
- 格式:doc
- 大小:23.50 KB
- 文档页数:5
ant使⽤指南详细⼊门教程这篇⽂章主要介绍了ant使⽤指南详细⼊门教程,本⽂详细的讲解了安装、验证安装、使⽤⽅法、使⽤实例、ant命令等内容,需要的朋友可以参考下⼀、概述ant 是⼀个将软件编译、测试、部署等步骤联系在⼀起加以⾃动化的⼀个⼯具,⼤多⽤于Java环境中的软件开发。
在实际软件开发中,有很多地⽅可以⽤到ant。
开发环境:复制代码代码如下:System:Windows JDK:1.6+ IDE:eclipse ant:1.9.1⼆、优点ant 是Apache软件基⾦会JAKARTA⽬录中的⼀个⼦项⽬,它有以下的优点: 1、跨平台性:Ant是纯Java语⾔编写的,所以具有很好的跨平台性。
2、操作简单:Ant是由⼀个内置任务和可选任务组成的,⽤ant任务就像是在dos中写命令⾏⼀样。
Ant运⾏时需要⼀个XML⽂件(构建⽂件)。
Ant通过调⽤target树,就可以执⾏各种task。
每个task实现了特定接⼝对象。
3、维护简单、可读性好、集成简单:由于Ant构建⽂件时XML格式的⽂件,所以很容易维护和书写,⽽且结构很清晰。
Ant可以集成到开发环境中。
由于Ant的跨平台性和操作简单的特点,它很容易集成到⼀些开发环境中去。
三、安装和配置2、解压zip压缩包,将压缩包放置你要放置的⽬录。
我这⾥放置在D:\apache-ant-1.9.1,⽬录结构如下:bin是ant的程序运⾏⼊⼝,如果没有配置ANT_HOME的情况下,可以通过bin⽬录中的bat程序进⾏运⾏build任务。
如:在cmd中运⾏ant.bat就可以执⾏程序,当然你选择要当前⽬录中存在⼀个build.xml(build.xml是默认的ant执⾏⽂件,当然你可以指定其他⽂件)etc⽬录中存放的都是⼀些xsl的输出模板,创建⼀个加强的导出各种任务的XML输出,使你的build⽂件摆脱过时的警告lib⽬录中存放的是ant程序需要依赖的jar包manual⽬录是ant程序的帮助⽂档3、在我的电脑 –> 右键属性 –> ⾼级系统配置 -> 环境变量中配置ant新建系统变量 ANT_HOME = D:\apache-ant-1.9.1这样环境变量就配置好了,但前提你需要配置jdk的环境变量。
应用Ant实现项目的全流程自动化配置摘要当今信息时代,各行各业构建了各类的IT系统,用于管理各类信息。
而在研发这些IT系统过程中,如何进行软件工程的生命周期管理,如何高效、有序的、全自动化、智能化的进行软件的版本配置工作,则成为了一门亟待解决的问题。
关键词:软件配置ant 生命周期构建I / 12目录第一章背景 (3)1.1.现存问题 (3)1.2.主要内容 (4)第二章实现思路与环境搭建 (5)2.1.实现思路 (5)2.2.基本概念 (5)2.3.环境配置 (6)2.4.依赖包下载 (7)第三章自动化配置与部署的实现 (7)3.1.实现过程 (7)3.2.实现过程总结 (11)第四章总结与展望 (11)附录参考脚本 (12)2 / 12第一章背景1.1.现存问题软件的生命周期贯穿了从需求分析、设计、研发、配置、测试和发布。
这其中的每一个环节,需要投入一定的人力来确保软件产品的质量和提升工作小类。
大家在注重引入技术架构和新技术的时候,对于软件配置人员的工作相对而言较少关注。
而软件配置人员由于其工作的特性,决定了其技能和知识面的局限性。
因此,就大部分的软件配置而言,存在以下几点不足:机械化重复性劳动多。
配置人员大部分的时间都处在一种高机械化重复性的增量、编译、打包和发布的过程。
这个过程将大大降低人员的积极性和创新思路,影响配置人员的职业提升。
工作效率低。
大部分的过程需要使用不同的命令,应用不通的工具来完成响应的工作,如:代码的签出,需要使用svn,编译,需要使用命令行,上传需FTP客户端,重启weblogic需要使用ssh客户端,和IE浏览器完成整个过程。
自动化能力弱。
现有的过程,大部分的配置过程都需要人工介入,如:代码增量、冲突确认、SVN签出、代码打包、编译、发布,重启服务等工作需要占用配置人员绝大部分工作时间。
智能化水平低。
软件配置工作,对配置人员的细心程度要求较高,任何的一点错误都可能造成软件的配置失败。
ant指令详解2篇ant指令详解第一篇Ant(Another Neat Tool)是一款基于Java的构建工具,广泛用于自动化构建和部署Java应用程序。
它的诞生源于Apache软件基金会,可以帮助开发人员轻松地编译、打包和部署项目。
本文将详细介绍Ant指令的使用和功能。
Ant指令是Ant构建脚本中的命令行指令,用于定义构建流程、编译代码、打包文件等操作。
Ant采用XML格式的构建文件,将一组Ant指令按照特定的顺序组织起来,通过执行构建文件,可以自动完成一系列构建任务。
首先,让我们来了解一些常用的Ant指令。
首先是javac指令,用于将Java源代码编译成Java字节码文件。
示例代码如下:```xml<javac srcdir="./src" destdir="./bin"includeantruntime="false" />```上述指令将src目录下的Java源代码编译成字节码文件,并将生成的字节码文件存放在bin目录下。
接下来是jar指令,用于创建Java程序的可执行JAR文件。
示例代码如下:```xml<jar destfile="./dist/myapp.jar"><fileset dir="./bin" includes="**/*.class" /><fileset dir="./lib" includes="**/*.jar" /></jar>```上述指令将bin目录下的所有类文件和lib目录下的所有JAR文件打包成一个名为myapp.jar的JAR文件,并将其存放在dist目录下。
除了编译和打包,Ant还提供了许多其他有用的指令。
例如,copy指令可以用来复制文件或目录:```xml<copy file="./src/test.txt" todir="./dist" />```上述指令将src目录下的test.txt文件复制到dist目录下。
1,什么是antant是构建工具2,什么是构建概念到处可查到,形象来说,你要把代码从某个地方拿来,编译,再拷贝到某个地方去等等操作,当然不仅与此,但是主要用来干这个3,ant的好处跨平台--因为ant是使用java实现的,所以它跨平台使用简单--与ant的兄弟make比起来语法清晰--同样是和make相比功能强大--ant能做的事情很多,可能你用了很久,你仍然不知道它能有多少功能。
当你自己开发一些ant插件的时候,你会发现它更多的功能。
4,ant的兄弟makeant做的很多事情,大部分是曾经有一个叫make的所做的,不过对象不同,make更多应用于c/c++,ant更多应用于Java。
当然这不是一定的,但大部分人如此。
一,构建ant环境要使用ant首先要构建一个ant环境,步骤很简单:1),安装jdk,设置JAV A_HOME,PATH,CLASS_PATH(这些应该是看这篇文章的人应该知道的)2),下载ant地址/找一个你喜欢的版本,或者干脆最新的版本3),解压ant你得到的是一个压缩包,解压缩它,并把它放在一个尽量简单的目录,例如D:\ant-1.6虽然你不一定要这么做,但这么做是有好处的。
4),设置ANT_HOME PATH中添加ANT_HOME目录下的bin目录5),测试一下你的设置,开始-->运行-->cmd进入命令行-->键入ant回车,如果看到Buildfile:build.xml does not exist!Build failed那么恭喜你你已经完成ant的设置二,体验ant就像每个语言都有HelloWorld一样,一个最简单的应用能让人感受一下Ant1,首先你要知道你要干什么,我现在想做的事情是:编写一些程序编译它们把它打包成jar包把他们放在应该放置的地方运行它们这里为了简单起见只写一个程序,就是HelloWorld.java程序代码如下:package test.ant;public class HelloWorld{public static void main(String[]args){System.out.println("Hello world1");}};2,为了达到上边的目的,你可以手动的用javac、copy、jar、java来完成,但是考虑一下如果你有成百上千个类,在多次调试,部署的时候,一次次的javac、copy、jar、java那将是一份辛苦的工作。
本内容包含了Ant的历史简要介绍,Ant的功能以及Ant框架的介绍,并对下载安装使用Ant进行了示例介绍,同时通过一个Java程序讲解了Ant的基本使用方法。
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。
Ant技术的剖析与应用作者:黄继红刘正余来源:《计算机光盘软件与应用》2013年第17期摘要:Ant是基于Java的项目生成工具,在软件开发中用来将源代码和其他输入文件自动的转换为可执行文件的形式,以便及时产生一致的生成版本。
Ant的目标是使Java项目的生成过程简单化、标准化、规范化。
本文介绍了Ant的基本功能、生成文件的配置和常用的任务操作,并通过列举实例,分析了Ant的基要工作原理和使用方法。
关键词:Ant;生成文件;target元素中图分类号:TP212.9;TN929.5Ant(Another Neat Tool)是基于Java的生成工具,最初的创始人James Duncan Davidson,后来捐献给了Apache开源组织,即为Apache Ant。
Ant生成工具作用,主要是在软件开发过程中,可以将源代码与其他输入文件转换为可执行的文件的形式(也可以转换为可安装产品的映像形式)。
随着开发的应用程序的生成过程会变得更加复杂,为确保在每次生成期间使用精确相同的生成步骤,同时,使生成的过程尽可能的自动化,以便产生一致的生成版本,在软件的开发流程中,这就变得非常的重要[1]。
Ant定义生成文件之间的相互依赖关系,并使用了跨平台的Java类,使用Ant,可以编写单个生成文件,该生成文件在任何Java平台上都具有一致地操作(因为Ant本身是用Java语言实现的),这是Ant最大的优势。
1 Ant配置解压下载的文件包到指定的文件夹下,如:C:\apache-ant-1.9.1。
配置环境变量(1)配置环境变量PATH,如:PATH设置为C:\apache-ant-1.9.1\bin。
(2)配置环境变量ANT_HOME,如:ANT_HOME设置为C:\apache-ant-1.9.1。
测试,在命令行中,输入ant,可测试成功与否。
2 Ant的使用2.1 Ant生成文件剖析使用Ant必须构建build.xml文件,build.xml文件基本结构如图1:图1 build.xml基本结构(1)Ant没有定义自己的语法,其生成文件是以XML编写的,在Ant存在一组Ant可以理解的预定义XML元素,且可以定义新的元素,来扩展Ant的功能。
图解与代码Ant实现Java项目的自动构建和部署Ant(Another Neat Tool)是一种Java项目构建工具,它可以帮助开发人员自动化构建和部署Java项目。
Ant使用XML格式的构建文件来定义构建和部署任务,使得整个过程更加简单且可维护。
下面是Ant实现Java项目自动构建和部署的一般步骤:2. 创建构建文件:Ant使用XML格式的构建文件(通常命名为build.xml)来定义构建和部署任务。
构建文件包含了一系列的target,每个target定义了一个具体的构建或部署任务。
3.定义项目属性:在构建文件中,首先需要定义一些项目属性。
这些属性可以包括项目的名称、版本号、源文件目录、输出目录等。
定义属性可以方便后续的任务引用,提高代码的可维护性。
4. 定义依赖:如果项目依赖于其他库或模块,就需要在构建文件中定义这些依赖关系。
Ant提供了<classpath>和<dependency>这样的任务,可以用来引用外部依赖。
5. 定义构建和部署任务:在构建文件中,通过定义一个或多个target来描述构建和部署任务。
每个target可以包含多个task,每个task执行一个具体的构建或部署操作。
例如,可以使用<javac>任务编译Java源代码,使用<jar>任务打包成可执行的JAR文件,使用<war>任务将项目打包成WAR文件等。
6. 定义任务之间的依赖关系:有时候,一些任务的执行需要依赖于其他任务的结果。
在构建文件中可以使用<depends>属性来定义任务之间的依赖关系。
7. 运行Ant构建:通过命令行或集成开发环境(IDE)可以运行Ant构建。
在命令行中,只需要运行“ant”命令,并指定要执行的target。
Ant将按照构建文件中定义的顺序执行任务,并输出构建过程的详细信息。
8. 部署应用程序:在构建完成后,可以使用Ant来自动部署应用程序。
Ant是一个Apache基金会下的跨平台的构件工具,它可以实现项目的自动构建和部署等功能。
在本文中,主要让读者熟悉怎样将Ant应用到Java项目中,让它简化构建和部署操作。
一.安装与配置下载地址:/,在本文中下载的是1.7.0版本。
解压到某个目录(例如E:"apache-ant-1.7.0),即可使用。
添加系统环境变量:ANT_HOME,该变量指向Ant解压后的根目录,在此为E:"apache-a nt-1.7.0。
安装与配置完毕后,读者可以测试一下Ant是否可用,首先进入Ant的bin目录,运行命令ant –version,若安装和配置成功,则会显示Ant版本信息,如下图所示:由上可以看出,读者运行Ant的命令时,需要进入到Ant的bin目录,如何才能让系统自动找到Ant呢?这时需要读者在系统环境变量path中添加Ant的bin目录。
设置完成后,我们就可以在任何目录(例如C:"Documents and Settings"AmigoXie目录)输入Ant的命令,来获得命令的运行结果。
二.Ant的关键元素Ant的构件文件是基于XML编写的,默认名称为build.xml。
为了更清楚的了解Ant,在这里编写一个简单的Ant程序,用来展现Ant的功能,让读者对Ant有一个初步的了解。
首先在E盘下建立一个build.xml文件,内容如下:<?xml version="1.0"?><project name="helloWorld"><target name="sayHelloWorld"><echo message="Hello,Amigo"/></target></project>读者可以进入E盘,然后运行ant sayHelloWorld,可以看到如下的运行结果:其中sayHelloWorld为需要执行的任务的名称。
Ant介绍以及基本使用指南很早以前就想研究一下ant,但一直没有下手,今天有空儿,来学习一下吧!Ant 是着名Java开源组织Apache的一个项目,是一个基于java的build工具。
它可以使你通过ant脚本语言,自动你的项目拷贝到某个目录,发布项目,或者生成一些代码,执行SQL语言。
总之它可以帮助你完成项目开发中除了开发代码以外的大部分辅助性工作。
为什么需要手工去编写ant脚本呢,很多IDE工具会为我们生成ant脚本阿?有人会这么问。
要知道靠IDE自动生成的东西,总是有这样那样的缺点,以及不足,他不能完全满足你的很多需要。
如果出现了问题,你不得不手动修改ant脚本,这时候如果你不了解ant那么你将会一筹莫展。
所以为了能使自己的项目变得更专业化,或者想在领导面前show一下的话(有时候很有用)。
还是了解一下ant吧。
Ant 的安装使用安装Ant安装很简单,只要你从apache网站上下载他的zip包,然后解压到任何本地磁盘上,在环境变量中添加 Path 的值加上 %ANT_HOME%/bin 就可以了,这样在Dos提示符中就可以使用 ant 这个命令了。
其他的你需要设置一下 ANT_HOME 这个环境变量为你解压后的目录。
还有就是你要检查一下你的JDK安装目录JAVA_HOME是不是加到你的环境变量里面去了。
使用概述使用ant 也同样是非常简单的事。
通常的做法就是在你的项目里面建立一个XML文件,名字通常可以取 build.xml 。
当然你可以取任何你喜欢的名字。
这个文件就是你需要ant为你项目做的一些辅助性工作的批处理文件。
他的格式可能是这样的。
我们先不具体说ant 标记,先有一个感性的认识会比较快的上手。
例子:<?xml version="1.0" encoding="UTF-8"?><project default="all" name="pluto-project" basedir="."><target name="all" depends="api, container, portal"></target><target name="clean" depends="api-clean, container-clean, port al-clean"></target><target name="api"><property name="" value="portlet-api-@@DATE@@ "/><ant antfile="build.xml" dir="api" target="jar" inherit All="false" /></target><target name="api-clean"><ant antfile="build.xml" dir="api" target="clean" inher itAll="false" /></target><target name="container" depends="api"><ant antfile="build.xml" dir="container" target="jar" i nheritAll="false" /></target><target name="container-clean"><ant antfile="build.xml" dir="container" target="clean" inheritAll="false" /></target><target name="portal" depends="container"><ant antfile="build.xml" dir="portal" target="jar" inheritAll="false" /></target><target name="portal-clean"><ant antfile="build.xml" dir="portal" target="clean" inheritAll="false" /></target></project>这个build.xml 文件引自apache的一个项目。
Ant开发及整合应用详解
4.3 Apply/ExecOn Task:通过Ant工具直接执行系统命令
2007-5-28 20:52:00
当前章节:4.3 Apply/ExecOn Task:通过Ant工具直接执行系统命令
·前言
·4.1 Ant Task:Ant任务(执行多个构件文件)
·4.2 AntCall Task:执行过程中调用并执行其他target
·4.4 Chmod Task:改变Linux/UNIX系统的文件权限
·4.5 Copy Task:对文件和目录进行复制
·4.6 Delete Task:对文件和目录进行删除
4.3 Apply/ExecOn Task:通过Ant工具直接执行系统命令
Apply/ExecOn 任务的作用是,通过Ant工具直接执行系统使命。
通过这个task 执行的命令依赖于操作系统,而且只能在Ant支持的操作系统下执行。
Ant支持Windows、Linux、UNIX、OS/2 Warp、Novell Netware 6和MacOS X。
4.3.1 Apply/ExecOn Task属性及功能
(1)executable属性:用于指定要执行的命令,不带命令行参数,这个属性是必需的。
(2)dest属性:用于指定命令执行时目标文件的存放位置。
(3)spawn属性:用于指定是否在执行命令时产生输出信息。
默认为false代表输出日志信息。
如果指定了spawn属性为true,Ant将不会产生这个命令的日志输出。
(4)dir属性:用于指定执行命令所在的目录,在此目录下执行这个命令。
(5)relative属性:用于指定命令是否支持相对路径。
默认为false,不支持相对路径,相对于当前根目录或dest属性设定的目录。
(6)forwardslash属性:用于设定文件路径是否支持斜线分隔符,尽管有些操作系统支持其他的分隔符。
默认时为false,如果操作系统的分隔符为斜线,那么这个属性将被忽略。
(7)os属性:列出允许执行这个命令的操作系统。
(8)output属性:指定把命令行执行的输出重定向到一个输出文件。
如果错误信息没有重定向到特定文件,错误信息则将输出到这个文件中。
(9)error属性:指定一个文件用于接收错误的输出信息。
从Ant 1.6后提供了这个属性。
(10)logError属性:这个属性用于指定把错误的日志输出到Ant工具的日志信息中,也可以通过error属性指定错误的输出文件。
(11)append属性:指定是否可以输出到一个存在的文件或者覆盖存在的文件,默认为false。
(12)outputproperty属性:指定输出定向到的属性的名字,在属性中可定义一个文件,这样就可以把输出信息输出到文件中。
(13)errorproperty属性:用于指定把错误信息输出到的属性的名字。
(14)input属性:指定一个文件,从这个文件中读取属性,在执行命令时可以引用得到这些属性。
(15)inputstring属性:用于把inputstring属性指定的字符串传递给执行的命令。
(16)resultproperty属性:这个属性用于存放命令执行后所返回的结果。
(17)timeout属性:设定一个时间,如果这段时间内命令没执行完毕,则这个命令会被中断。
(18)failonerror属性:这个属性用于指定是否出错时命令终止。
如果属性取值为true,那么在执行的命令退出的同时返回一个不为0的代码,则构建进程将会中止。
(19)failifexecutionfails属性:用于指定当不能执行程序时是否中止构建命令的执行,默认为true。
(20)skipemptyfilesets属性:当指定的目录中没有文件,则构建命令将不会被执行。
(21)parallel属性:如果属性为true,则构建命令只执行一次,并把附加的文件作为命令参数。
如果为false则每一个附加的文件都会执行一次这个命令。
默认为false。
(22)type属性:指定传给要执行的命令的参数类型,可为file(文件)、dir (目录)、path(路径)。
默认为file。
(23)newenvironment属性:如果当前的环境变量被声明,将不传递旧的环境变量,默认为false。
(24)vmlauncher属性:默认为true,通过Java虚拟机的特性来执行构件文件。
如果为false,则通过操作系统本身的脚本功能去执行。
(25)resolveExecutable属性:默认为false,如果设为true,那么命令会在project的根目录下执行。
如果在UNIX或Linux下只允许用户在自己的路径下执行这个命令,那么要把这个属性设为false。
(26)maxparallel属性:设定一个最大的平行值,用于指定一次执行的源文件的最大数目。
如果设为<0代表没有限制。
默认为没有限制。
(27)addsourcefile属性:是否自动添加源文件名到执行的命令中,默认为true。
(28)verbose属性:是否输出命令执行时的概要信息,默认为false不输出。
(29)ignoremissing属性:是否忽略不存在的文件,默认为true。
(30)force属性:是否通过timestamp来对target文件进行对比。
默认为false。
4.3.2 Apply/ExecOn Task可使用的参数
执行Apply/ExecOn 任务时可以通过Ant提供的一些内置类型来简化操作,类似于参数传递的作用。
可使用的Ant类型有:
● FileSet:可以通过<fileset>元素来设定文件集合,在任务中引用这个FileSet。
● FileList:可以通过一个或多个FileList来指定文件列表,然后在Apply/ExecOn Task中进行引用。
● Dirset:通过Dirset定义目录集合,然后在Apply/ExecOn Task中进行引用。
● Arg:可通过<arg>类型指定命令行参数,然后在Apply/ExecOn Task中使用。
● Mapper:通过Mapper类型可以指定dest属性的文件的映射关系。
● Srcfile:通过参数指定源文件,在<arg>的后面使用,<arg>参数的值为Srcfile指定的源文件。
● Targetfile:与Srcfile作用相似,用于指定目录文件的参数。
● Env:指定一个环境变量,并在命令行中传递,以<env>类型的形式使用。
4.3.3 通过Apply/ExecOn Task执行Linux下ls命令
(显示文件信息)的实例
在Linux系统中,可以通过ls的shell命令显示文件的详细信息。
用Ant工具也可以执行ls这个功能。
具体的例子如下:
<apply executable="ls">
<arg value="-l"/>
<fileset dir="/tmp">
<patternset>
<exclude name="**/*.txt"/>
</patternset>
</fileset>
<fileset refid="other.files"/>
</apply>
这个例子的作用是:调用ls–l的shell命令,列出/tmp目录下的所有非.txt 文件和所有id为other.files的FileSet类型所指定的文件的详细信息。
4.3.4 使用Mapper、Srcfile类型的实例
下面是一个通过Apply/ExecOn任务使用Mapper和Srcfile类型的例子,具体内容如下:
<apply executable="cc" dest="src/C" parallel="false">
<arg value="-c"/>
<arg value="-o"/>
<targetfile/>
<srcfile/>
<fileset dir="src/C" includes="*.c"/>
<mapper type="glob" from="*.c" to="*.o"/>
</apply>
这个例子的作用是:通过Mapper指定为每个比.o文件新的.c文件执行cc –c –o targetfile sourcefile命令。
在这个命令中用.o文件的名称替换targetfile(目标文件),用.c文件的名称替换sourcefile(源文件)。