最近在搞一个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,
真诚期待留言
相关推荐
#### 二、Ant的基础知识 ##### 2.1 什么是Ant? Apache Ant是一个基于Java的构建工具,其名称源自“Another Neat Tool”(另一个整洁的工具)的首字母缩写。构建工具的主要作用是将源代码和相关的资源文件转换成可...
以上就是Ant入门的一些基本知识点,通过这个“myant01”实例,你可以动手实践这些概念,逐步熟悉Ant的工作方式。随着经验的积累,你会发现Ant是一个强大且灵活的构建工具,能够满足各种复杂的项目构建需求。
在这个Java实现中,关键知识点包括: 1. **蚁群算法的基本框架**:首先,需要定义每个蚂蚁的状态,如当前位置、剩余路径、总距离等;然后,定义蚂蚁如何选择下一个城市,这通常涉及信息素更新规则;最后,需要设定...
成为一个成功的JAVA EE架构师,需要逐步积累知识和实践经验。以下是对各阶段学习内容的详细阐述: 1. **构架师胚胎(程序员)** - **语言基础**:Java是基础,理解其语法、特性,包括类、接口、异常处理、输入输出...
在积累了丰富的实践经验之后,进入设计师阶段,此时的重点是将理论知识应用于实践,并逐步形成自己的设计理念和技术风格。 1. **设计模式**:深入学习各种设计模式,包括但不限于GOF设计模式、J2EE设计模式等,这...
### 如何测试自己是否掌握了Java 对于任何学习者而言,掌握一门编程语言并不仅仅是理论上的了解,更重要的是能够实际操作并解决具体问题。...建议多参与实际项目,不断积累经验,这样才能真正成为Java领域的高手。
- **O'Reilly 出版的《Ant: The Definitive Guide》**:介绍了 Ant 工具的使用方法,非常适合 Java 项目的构建和自动化测试。 #### 总结 以上推荐的书籍涵盖了 Java 学习的各个阶段,从基础到高级,从理论到实践,...
积极参与各类项目实践,积累丰富的实战经验,是成为一名真正的Java高手不可或缺的过程。 综上所述,成为一名真正的Java高手不仅需要扎实的技术基础,还要具备广泛的技能树和不断学习的心态。希望以上内容能对您有所...
JAVA EE架构师是软件开发领域的高级角色,负责设计和...通过不断学习和实践经验的积累,程序员可以逐渐发展为JAVA EE架构师,不仅要有扎实的技术基础,还要有解决复杂问题的能力,以及适应不断变化的行业需求的灵活性。
本文为 Java 学习路线图,涵盖从基本语法到高级主题的内容,包括数据类型与变量、条件语句、循环结构、面向对象编程、内存管理、集合框架、序列化机制以及使用 Gradle/Maven/Ant 进行项目构建等方面的基础知识;...
### Java核心知识点详解 在IT领域,Java作为一门广泛应用的编程语言,其重要性...总之,成为Java高手并非一蹴而就,需要长期的学习和实践积累。掌握上述知识点,你将能够在Java开发领域游刃有余,应对复杂项目挑战。
要成为一个合格的Java程序员,需要全面且深入地掌握一系列技术和工具。下面将详细阐述成为一位合格Java程序员所需具备的关键技能。 ### 一、语法基础 ...通过持续的努力和积累,逐步成长为一名优秀的Java开发者。
蚁群算法(Ant Colony Optimization,...对于JAVA程序员来说,这是一次将理论知识转化为实践的好机会。通过阅读和运行代码,我们可以直观地看到算法如何逐步收敛,找到解决方案,这对于提升算法设计和编程能力大有裨益。
成为一个成功的JAVA EE架构师,需要逐步积累知识和实践经验。以下是对各阶段学习内容的详细阐述: 1. **构架师胚胎(程序员)** - **语言基础**:精通Java编程语言,理解其特性和语法,同时了解C和C++的基础,为...
此外,工具如ANT用于构建管理,LOG日志记录,JUnit单元测试也必不可少。 Java核心基础包括类、对象、封装、继承、多态等面向对象特性,以及异常处理、IO流、多线程、集合框架等内容。XML用于数据交换,编程设计模式...
本资料集合是关于使用Java编程语言实现蚁群算法(Ant Colony Optimization, ACO)进行路由选择的动态模拟及可视化的学习资源。其中包含了完整的源代码、开题报告、翻译、任务书以及相关的外文文献翻译,为深入理解和...
### Java高手的25个学习要点详解 #### 1. 掌握面向对象分析与设计(OOA/OOD),模式(GOF、J2EE、DP)及UML类图、对象图、...参与真实项目不仅能加深对理论知识的理解,还能积累宝贵的实战经验,提高解决问题的能力。
总的来说,这个项目结合了理论与实践,从算法设计到可视化实现,涵盖了计算机科学多个领域的知识,对于学习和理解蚁群算法以及Java编程具有很高的价值。通过这个项目,开发者不仅可以提升算法设计和编程能力,还能...
综上所述,这个Java项目不仅涉及了计算机网络的基础知识,还涵盖了高级的优化算法和可视化技术,是理论与实践相结合的良好示例。通过学习和实践,开发者可以深入了解路由选择策略,同时提升编程和算法设计能力。