ant笔记(二)ant的属性使用与引用外部变量,集成一个编译,拷贝,打包,运行的任务链

Apache Ant 1.8.4版本构建Java项目的实战指南 元素是根元素,它定义了构建过程的名称和默认属性,为其他元素提供了一个命名空间。一个典型的<project>元素定义如下: 阅读详情

build.xml

<?xml version="1.0" encoding="UTF-8"?>
<!--
	default指定默认执行的任务
	target表示的是每一项具体的任务
	depends表示依赖于另一个任务A,在执行B的是会去先执行A

	创建ant项目的流程
		1.创建文件夹(ant标准)
			src:存放源码
			build:所有的文件信息都保存在这个文件夹
			classes:编译好的所有文件保存在这个文件夹
			dist:存放project.jar
		2.将src文件夹的数据拷贝到build/src
		3.编译源代码
		4.将源代码打包为jar
		5.直接运行程序
		
	ant本身的属性:
		ant.file
		ant.home
		ant.java.version
		ant.project.name
		ant.version
		basedir
		
	eclipse中配置ant
		1.Ant:修改Documentation的URL
		2.Ant->Runtime;设置Ant Home Entries为本地的Ant文件夹
		3.新建javaproject
		4.创建build.xml文件(open with Ant Edit文件)
		5.建立如下project
		6.右键执行
		
-->
<!-- 如果文件夹换名,应先执行删除文件夹deleteDir任务,在更换build文件名 -->
<project default="execute">

	<!--使用属性定义相应的路径时,一定要使用location,会转换系统的分隔符-->
	<property name="build.classes" location="${build.dir}/classes"></property>
	<property name="build.src" location="${build.dir}/src"></property>
	<property name="build.dist" location="${build.dir}/dist"></property>
	<!-- 定义键值对实例 
	<property name="execute.class" value="ant.zttc.edu.cn.HelloWorld"></property>
	-->
	
	<!-- 路径不建议放在properties中定义;如果属性太多可以在外部文件中定义 -->
	<property file="build.properties"></property>
	
	<!--把环境变量中的参数导出到env这个变量中进行使用-->
	<property environment="env"></property>
	<target name="test">
		<echo>${ant.home}</echo>
		<echo>${ant.version}</echo>
		<echo>${ant.java.version}</echo>
		<echo>${env.catalina_home}</echo>
		<echo>${env.java_home}</echo>
		<echo>${env.OS}</echo>
	</target>
	
	<!-- 1.使用文件集:包含所有目录的所有文件 -->
	<fileset id="src.path.set" dir="src" includes="**/*.*"></fileset>
	<!-- 2.使用文件集:包含所有目录的所有文件 -->
	<fileset id="src.path" dir="src">
		<!--包含的文件-->
		<include name="**/*.*"/>
		<!--不包含测试文件-->
		<exclude name="**/Test*"/>
		<exclude name="**/test*"/>
	</fileset>
	
    <target name="deleteDir">
		<delete dir="${build.dir}"></delete>
    </target>
	<target name="init" depends="deleteDir">
		<mkdir dir="${build.dir}"/>
		<mkdir dir="${build.src}"/>
		<mkdir dir="${build.classes}"/>
		<mkdir dir="${build.dist}"/>
	</target>
	<!-- 如果目标文件存在,则不执行-->
	<target name="copySrc" depends="init">
		<copy todir="${build.dir}/src/">
			<fileset refid="src.path"></fileset>
		</copy>
	</target>
	<!--编译源文件-->
	<target name="compile" depends="init">
		<javac destdir="${build.classes}" srcdir="src"></javac>
	</target>
	
	<!--打jar包;为了让jar可运行,需要加入MANIFEST.MF文件中加入Main-Class-->
	<target name="jar" depends="compile">
		<jar destfile="${build.dist}/${jar.name}" basedir="${build.classes}">
			<manifest>
				<attribute name="Main-Class" value="${execute.class}"/>
				<attribute name="Build-By" value="Sid"/>
			</manifest>
		</jar>
	</target>
	
	
	<!--执行任务,基于jar和copySrc任务-->
	<target name="execute" depends="jar,copySrc">
		<echo>基于类路径的classname来完成执行</echo>
		<java classname="${execute.class}" classpath="${build.classes}">
			<!--main函数的参数-->
			<arg value="张三"/>
			<arg value="李斯"/>
		</java>
		
		<echo>基于jar文件来完成执行</echo>
		<java jar="${build.dist}/${jar.name}" fork="true">
			<arg value="张三"/>
			<arg value="李斯"/>
		</java>
	</target>
</project>

build.properties

build.dir=build
execute.class=ant.zttc.edu.cn.HelloWorld
jar.name=hello.jar


基于Transformers库的BERT模型:一个文本情感分类的实例解析 简介 本文来讲述BERT应用的一个例子,采用预训练好的BERT模型来进行演示。BERT的库来源于Transformers,这是一个由PyTorch编写的库,其集成了多个NLP领域SOTA的模型,比如bert、gpt-2、transformer xl等,并且可以自由选择已经预训练好的模型参数,我们可以基于这些参数进行进一步的训练调试。 Part 1: 利用BERT基于特征的方式进行建模 1、任务与数... 阅读详情

相关推荐

扬声器设计避坑指南:用Comsol分析反电动势对THD的影响(附案例文件)

本文深入探讨了扬声器设计中反电动势对总谐波失真的关键影响。通过COMSOL仿真,详细分析了BL值非线性、音圈电感变化等电磁-力-声耦合机制,并提供了从参数化建模到系统级优化的实战指南,帮助工程师精准量化并降低谐波失真,提升扬声器音质。

xx56789的博客 520

ant笔记(二)ant的属性使用与引用外部变量,集成一个编译,拷贝,打包,运行的任务链...

build.xml &lt;?xml version="1.0" encoding="UTF-8"?&gt; &lt;!-- default指定默认执行的任务 target表示的是每一项具体的任务 depends表示依赖于另一个任务A,在执行B的是会去先执行A 创建ant项目的流程 1.创建文件夹(ant标准) src:存放源码 build:所有的文件信息都保存在这个...

管子(zero)的杂乱空间 353

Simlink与PX4硬件在环仿真(HIL)实现

Simlink与PX4硬件在环仿真(HIL)实现 介于涉及的知识比较多,这里只是简单的介绍一下,更多内容可以参考阿木实验室《基于matlab模型开发》课程。 硬件在环HIL介绍 simlink与PX4通信实现 硬件在环HIL介绍 为来贯彻万物都可以用数学公式表示,我们以simlink的角度来看我们的无人机,那么UAV可以分为以下的几个模块: 传感器模型 滤波器模块 控制器模...

Zipout的博客 6210

eclipse配置ant插件

Windows---Preferences---Ant---Runtime 选中Ant Home Entries(Default)点击左边的箭头,展开里面的jar包,把里面的这些自带的jar全删掉,然后点击Add External JARS... 进入ant的安装目录(我的是:D:\ProgramFilex64\apache-ant-1.7.1\lib),把目录下的jar全选添加进来就可

牧羊仒 9604

Frida实战:如何逆向分析某电商App的doCommandNative函数(附完整Hook脚本)

本文详细介绍了如何使用Frida逆向分析电商App中的doCommandNative函数,涵盖动态注册识别、SO加固对抗及高级Hook脚本编写等实战技巧。通过完整Hook脚本示例,帮助安全研究人员深入理解JNICLibrary的关键函数逆向分析方法,提升移动应用安全研究能力。

weixin_29327977的博客 615

AI工作流革命:从n8n到Sora2,揭秘自动化视频创作的底层逻辑

本文深入探讨了AI工作流在自动化视频创作中的应用,重点介绍了n8n、Coze和Sora2的组合如何实现从链接输入到视频输出的全流程自动化。通过三层架构解析、关键技术模块优化及成本控制策略,这套方案显著提升了视频生产效率,适用于电商、热点追踪等多种场景。

gg901的博客 1083

java中的Ant构建_Ant构建

简介Apache Ant是一个Java库和命令行工具,其任务是将构建文件中描述的进程作为相互依赖的目标和扩展点。只要使用过Linux系统的读者,应该知道 make这个命令。当编译Linux内核及一些软件源程序时,经常要用这个命令。Make命令其实就 是一个项目管理工具,而Ant所实现功能与此类似,像make,gnumake和nmake这些编译工具都有 一定的缺陷,但是Ant却克服了这些工具的缺陷。...

weixin_28686463的博客 1563

LilyPad三色LED共阳极控制:从原理到Arduino编程实战

RGB LED作为可编程光源的核心组件,通过红、绿、蓝三原色的加色混合原理,能够生成丰富的色彩。其内部结构主要分为共阳极和共阴极两种类型,这决定了驱动电路的设计和编程逻辑。在电子织物和可穿戴设备领域,掌握RGB LED的控制技术对于实现动态光效和交互反馈至关重要。本文以LilyPad三色LED为例,深入解析其共阳极特性,并详细演示如何结合Arduino进行PWM编程,从而精准控制颜色与亮度,为智能服装、互动艺术装置等项目提供可靠的照明解决方案。

weixin_30237719的博客 604

xxx.jar包中没有主清单属性

我的文件内容: Manifest-Version: 1.0 Created-By: Apache Maven 3.6.3 Built-By: wangjun Build-Jdk: 11.0.9.1 正常的文件内容: Manifest-Version: 1.0 Implementation-Title: common Implementation-Version: 0.0.1-SNAPSHOT Spring-Boot-Version: 2.1.5.RELEASE Main-Class: org.sp

养只狗名叫猫 854

SVPWM原理与MCU/FPGA实现:从数学推导到工程实战

空间矢量调制(SVPWM)是实现高性能电机驱动控制的核心算法之一,其通过六个基本电压矢量与零矢量的伏秒平衡,在一个PWM周期内合成任意方向的旋转电压圆,相比传统SPWM可提升约15%的直流电压利用率。该技术不仅涉及扇区判断、作用时间计算、过调制限幅等数学原理,还在MCU与FPGA两种硬件平台上有不同的工程实现路径,包括中心对齐PWM配置、死区插入、定点数流水线设计等。在电动工具、无人机、机器人及车载执行器等电池供电场景中,SVPWM直接决定续航与扭矩表现。本文从数学原理出发,详细拆解MCU和FPGA实现细节

weixin_34265814的博客 301

材料仿真软件:LAMMPS_(8).温度和压力控制

在 LAMMPS 中,温度和压力的控制是通过多种恒温器和恒压器实现的。Nose-Hoover 恒温器和恒压器因其准确性和广泛适用性而被经常使用,而 Berendsen 恒温器和恒压器则因其计算效率高而适用于初步仿真或粗粒化模型。温度重标和压力重标方法虽然简单,但在某些情况下可以快速调整系统的温度和压力。通过选择合适的控制方法,可以根据具体的需求和系统特性来设计和运行分子动力学仿真,从而获得准确和可靠的结果。在实际应用中,建议先进行初步的仿真以确定合适的控制参数,然后再进行细致的仿真以验证结果的稳定性。

kkchenjj的博客 1692

java jar 没有主清单_Java 无法执行jar-file:“没有主清单属性”

小编典典首先,看到你跑步java -jar "app"而不是跑步有点奇怪java -jar app.jar其次,要使jar可执行文件,你需要将一个名为META-INF / MANIFEST.MF的文件打包文件本身应该(至少)具有此衬纸:Main-Class: com.mypackage.MyClasscom.mypackage.MyClass该类在哪里保存公共静态void main(String ...

weixin_29146779的博客 226

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

Ant

Apache Ant是一个基于Java的生成工具。据最初的创始人James Duncan Davidson介绍,这个工具的名称是another neat tool(另一个整洁工作)的首字母缩写。 1、project  default默认执行的targer 2、target  name名字,depends依赖 3、添加文件夹 4、拷贝文件,文件夹集 filese

zhangxiangbin001的专栏 445

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

补齐Android技能树 - 玩转Gradle(一) _ 小册免费学

题外话,我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在IT学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多程序员朋友无法获得正确的资料得到学习提升,故此将并将重要的Android进阶资料包括自定义view、性能优化、MVC与MVP与MVVM三大框架的区别、NDK技术、阿里面试题精编汇总、常见源码分析等学习资料。【Android思维脑图(技能树)】

2401_84132544的博客 161

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

java构建工具_Gradle深入与实战(一)什么是构建工具

什么是构建工具?一个可编程的工具,能够以可执行和有序的任务来表达满足需要的自动化过程。以Java为例,要得到一个简单可运行的Jar文件,需要下面几步:1.编译源代码2.运行测试(前提是你有测试)3.拷贝Class文件到目标目录4.打包Class文件为Jar文件这是一个完整的可自动化的过程,在没有构建工具之前,是由谁来做?IDE。一个强大的IDE,以上的步骤都只需要按几个按钮,这让开发人员的生活变得...

weixin_34382015的博客 175

Gradle深入与实战(转)

转自:NO END FOR LEARNINGhttp://benweizhu.github.io/blog/2015/01/31/deep-into-gradle-in-action-1/ 什么是构建工具? 一个可编程的工具,能够以可执行和有序的任务来表达满足需要的自动化过程。 以Java为例,要得到一个简单可运行的Jar文件,需要下面几步: 1.编译源代码2.运行测试(前提是你有测试)...

weixin_30809333的博客 148

Gradle构建工具

(仅供个人学习。) 原文 http://benweizhu.github.io/blog/categories/gradleshen-ru-yu-shi-zhan/ http://benweizhu.github.io/blog/2015/01/31/deep-into-gradle-in-action-1/ 什么是构建工具? 一个可编程的工具,能够以可执行和有序的任务

LNZ001的博客 707

玩转Gradle ,动不动就Build Running,这玩意到底在干嘛?

好文推荐: 作者:Coder-pig Android开发仔基本上都间接或直接接触过Gradle,毕竟用AS导项目都这个坎:卡在 Gradle:Build Running 半个钟过去了,还在Build Running,而你只能卧槽,这玩意TM到底在干嘛??? 而学完Gradle,可能有助于你理解这个编译过程,而进行一些编译提速的优化~ 当然,好处还不止这个,比如:通过Gradle了解到具体的APP打包过程,可以通过自定义Task或编写Gradle插件的形式对APK体积进行缩减,比如资源混淆工具 AndR.

鸿蒙开发知识记录 3111

基于C++ Workflow构建10万QPS高并发广告竞价系统

异步非阻塞编程模型是现代高并发系统设计的核心范式,它通过事件驱动和Reactor模式,解决了传统同步I/O中线程阻塞导致的资源浪费问题。其技术价值在于能够用少量线程驱动海量并发连接,极大提升系统的吞吐量和资源利用率,尤其适用于在线广告、实时通信、金融交易等低延迟、高并发的应用场景。本文以搜狗C++ Workflow框架为例,深入解析如何利用其任务流抽象和并行编排能力,构建一个能够稳定支撑10万QPS的广告竞价系统核心服务,涵盖从HTTP服务器搭建、并行任务流实现到连接池优化、超时重试等关键工程实践。

weixin_34200628的博客 387

ant的安装配置以及在Eclipse上集成使用

去官网下载ant http://ant.apache.org/ 下载以后解压 比如说我解压到D盘 接下来去配置环境变量 新建ANT_HOME : D:\ant\apache-ant-1.9.7 在Path中添加:D:\ant\apache-ant-1.9.7\bin 在CLASSPATH 中添加:D:\ant\apache-ant-1.9.7\libWIN+R 输入CMD 输入

qq_31896043的博客 1万+

在eclipse配置ant开发环境

在eclipse配置ant开发环境

neweastsun的专栏 1万+

Ant 在eclipse中的使用!功能解释

身处小公司,很多事都需要自己独自去背负,哪怕你是菜鸟....... 因为最近一段时间,运维的同事离职,经常是需要自己独自去更新包,所以对一些更新类的控制都是使用本一个一个记好,生怕出错就会面临失业。 但是面对同时更新几十个类来说,特别浪费时间,因此为了更好的控制版本的更新,接触到了Ant,对我而言这就是一个打包工具,虽然说现在使用它的 人很少,但能提高工作效率的工具就是好的,没有什么

小小帅码农的博客 2613

使用Ant实现打包jar包上传到服务器

在开发过程中,常常需要同步更新服务器上的程序。如果每次都将程序重新打包,然后再登陆服务器进行上传,这样过程显得比较繁琐,特别是更新步骤较多时,很容易出错。我们可以通过Ant来实现打包和上传过程,如果是与Eclipse集成的,那整个过程将更加简化。 ant脚本 其实整个过程比较简单,主要用到两个task,jar和scp。其中,scp是ant的扩展task,需要第三方的库jsch...

weixin_33971205的博客 287

eclipse配置Ant Home

Window→Preferences→Ant→Runtime

l912943297的博客 1157

ant 中用到的各种变量的方式

参考地址:http://blog.youkuaiyun.com/hittata/article/details/4744653

weixin_34354173的博客 463

Ant命令行参数

Ant也可以通过命令行参数 -buildfile &lt;file&gt; 来指定其他目标文件,其中,&lt;file&gt;是你要采用的目标文件名。Ant还有很多命令行可选参数,如下所示: 可以输入ant -help查看命令行可选参数摘要:ant [options] [target [target2 [target3] ...]]Options:-help                  p...

iblike的专栏 512
上一篇: php学习笔记(四十一)smarty3的一些新特性
下一篇: ThinkPHP学习笔记(一)环境搭建和遇到的问题
阳小良
博客等级 码龄17年 54粉丝 155原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值