java ant知识的一点积累

本文介绍了一个使用Ant作为构建工具的Linux环境下Java项目打包方案。通过示例详细展示了如何配置build.xml来实现包括第三方依赖库在内的完整项目打包流程。

最近在搞一个Linux打包java项目的工具,编译工具采用的ant,积累了一点关于ant的微薄的经验,记录一下。

 

1. 默认情况下,使用ant命令会在当前的路径下寻找build.xml,根据里面的配置进行打包,当然我们也可以指定自定义的.xml文件进行打包,主要可以通过以下的三种模式

 

ant -buildfile mybuild.xml
ant -file mybuild.xml
ant -f mybuild.xml

 

2. 含有第三方jar包,并将其一起打包到目标jar包中

     <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<project default="Test Project" name="Test Project">
    <!--ANT 1.7 is required                                        -->
 <property name="releaseBase" value="/usr/local/build" />
 <!--
  指定javac 编译环境的版本
  默认情况下yum install ant方式关联的jdk是open-jdk
 -->
 <property name="javac" value="/usr/local/jdk1.6.0_37/bin/javac" />
 <!-- module -->
 <property name="testBase" value="${releaseBase}/src/TestProject" />
   
 <!--
  创建需要的文件夹
  dist目录为编译好的jar包存放的位置
  bin目录为编译时class文件存放的位置
 -->   
    <mkdir dir="${releaseBase}/dist"/>

    <target name="TestProject">
  <delete dir="${releaseBase}/bin" />
  <mkdir dir="${releaseBase}/bin" />
  
  <!--
   直接将svn命令集成到build文件中,无需再手动更新代码
   前期需要yum install svn
  -->
     <exec dir="${testBase}" executable="svn">
   <arg line="update" />
  </exec>
  
  <!--
   将相关的配置文件copy到bin目录下
  -->
  <copy todir="${releaseBase}/bin">
   <fileset dir="${testBase}/src">
    <include name="**/*.properties" />
    <include name="**/*.xml" />
   </fileset>
  </copy>
  
  <path id="lib-classpath">
   <fileset dir="${testBase}/libs">
    <include name="**/*.jar"/>
   </fileset>
        </path>
  
  <!--
   编译代码,指定java的编译环境
   classpathref: 文件夹中class文件会被引用的jar包
   fork: 为true时在外部启用一个新的JDK编译器进程执行编译。默认值是true,应用在需要配置编译器运行时环境时
  -->
  <javac executable="${javac}" srcdir="${testBase}" destdir="${releaseBase}/bin" fork="true" >
            <compilerarg line="-encoding UTF-8"/>
            <classpath refid="lib-classpath"/>
        </javac>
       
  <!--
   生成Jar包(第三方包达到生成的Jar包中)
  -->
  <jar destfile="${releaseBase}/dist/TestProject.jar" filesetmanifest="mergewithoutmain">
            <manifest>
                <attribute name="Main-Class" value="com.test.TestMain"/>
                <attribute name="Class-Path" value="."/>
            </manifest>
            <fileset dir="${releaseBase}/bin"/>
            <zipfileset excludes="META-INF/*.SF" src="${testBase}/libs/commons-beanutils.jar"/>
            <zipfileset excludes="META-INF/*.SF" src="${testBase}/libs/commons-collections.jar"/>
            <zipfileset excludes="META-INF/*.SF" src="${testBase}/libs/commons-lang.jar"/>
            <zipfileset excludes="META-INF/*.SF" src="${testBase}/libs/commons-logging.jar"/>
        </jar>
    </target>
</project>

 

哪位高手知道,如何在zipfileset标签中设置通配符,这样只要一行代码类似*.jar就可以导入所有第三方jar,

真诚期待留言

 

AI-PPT 一键生成 PPT:用户输入主题关键词,AI-PPT 可快速生成完整 PPT,涵盖标题、正文、段落结构等,还支持对话式生成,用户可在 AI 交互窗口边查看边修改。 文档导入转 PPT:支持导入 Word、Excel、PDF 等多种格式文档,自动解析文档结构,将其转换为结构清晰、排版规范的 PPT,有保持原文和智能优化两种模式。 AI-PPT 对话 实时问答:用户上传 PPT 或 PPTX 文件后,可针对演示内容进行提问,AI 实时提供解答,帮助用户快速理解内容。 多角度内容分析:对 PPT 内容进行多角度分析,提供全面视野,帮助用户更好地把握内容结构和重点。 多语言对话支持:支持多语言对话,打破语言障碍,方便不同语言背景的用户使用。 AI - 绘图 文生图:用户输入文字描述,即可生成符合语义的不同风格图像,如油画、水彩、中国画等,支持中英文双语输入。 图生图:用户上传图片并输入描述,AI - 绘图能够根据参考图和描述生成新的风格化图像,适用于需要特定风格或元素的创作需求。 图像编辑:提供如 AI 超清、AI 扩图、AI 无痕消除等功能,用户可以上传图片进行细节修改和优化,提升图片质量。 AI - 文稿 文案生成:能够根据用户需求生成多种类型的文章,如市场营销文案、技术文档、内部沟通内容等,提升文案质量和创作效率。 文章润色:对已有文章进行改善和优化,包括语言表达、逻辑连贯性、内容流畅度等方面,使文章更符合用户期望和风格。 文章续写:AI 技术理解文本语境,为用户提供新的想法、补充资料或更深层次的见解,帮助用户丰富文档内容。 AI - 医生 智能健康咨询:包括症状自查,用户输入不适症状,AI 结合病史等信息提供疾病可能性分析与初步建议;用药指导,支持查询药品适应症、禁忌症等,并预警潜在冲突;中医辨证,提供体质辨识与调理建议。 医学报告解读:用户上传体检报告
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zhao_rock_2016

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值