最近要做一个Swing的程序,要求运行在jdk1.4下,久闻Netbeans的guibuilder的大名,因此想用它做界面设计。从网上下了netbeans5.0的安装程序,之所以装5.0版本是因为它是能够运行在jdk1.4下的最高版本。果然如大家所说它的guibuilder做得相当出色,不过我认为netbeans的速度和编辑功能远不如eclipse,我是拿netbeans5.0和eclipse3.3做比较,当然一点也不公平。
程序接近尾声,总要写一个build.xml来自动编译,发布我的程序,当然不能用netbeans自己生成的build.xml,因为它依赖于netbeans特有的jar包,我希望用户没有netbeans也能用ant来编译,并且自带的可能也不能满足我的功能,但是我也不想重新再写一个build.xml,于是需要自定义netbeans生成的build.xml,幸运的是,netbeans生成的build.xml相当具有扩展性。
netbeans生成的build.xml的主要功能由build-impl.xml来完成,里面对每一个功能xxx都由_pre_xxx, _do_xxx, _post_xxx来完成,一般_do_xxx完成主要的功能,而_pre_xxx和_post_xxx是扩展点,它们分别在_do_xxx之前和之后调用。build-impl.xml中也定义了大量的宏,像javac,java,javadoc,debug都有对应的宏,这使得只需要修改一处,其它的地方就自动修改了。
在自定义Netbeans生成的build.xml时要注意,最好不要改变build-impl.xml文件,因为它由netbeans自动生成,并且每次做某种设置时(如添加类库)时就可能改变。
功能一:
加载自己的属性文件,其中定义的属性能够覆盖默认的属性。
在项目目录下建立一个build.properties文件,其中定义自己的属性。然后在build.xml中加入
<target name="-pre-init">
<property file="build.properties"/>
</target>
它重新定义了build-impl.xml中的-pre-init目标,任何其它目标运行之间都会先调用这个目标。
功能二:
设置javac编译的源文件编码为utf-8格式。由于不指定编译时,javac用的是本地操作系统的编码,一般windows的文件编码是gb2312,而我的java源文件一般使用utf-8的编码格式,可是build-impl.xml中并没有提供这一选项,不得已只能copy build-impl.xml中的javac宏,然后再加上编码:
<!-- add encoding support -->
<target name="-init-macrodef-javac">
<macrodef name="javac" uri="http://www.netbeans.org/ns/j2se-project/3">
<attribute name="srcdir" default="${src.dir}"/>
<attribute name="destdir" default="${build.classes.dir}"/>
<attribute name="classpath" default="${javac.classpath}"/>
<attribute name="debug" default="${javac.debug}"/>
<attribute name="encoding" default="utf-8"/>
<element name="customize" optional="true"/>
<sequential>
<javac srcdir="@{srcdir}" destdir="@{destdir}" debug="@{debug}" deprecation="${javac.deprecation}" source="${javac.source}" target="${javac.target}" includeantruntime="false" encoding="@{encoding}">
<classpath>
<path path="@{classpath}"/>
</classpath>
<compilerarg line="${javac.compilerargs}"/>
<customize/>
</javac>
</sequential>
</macrodef>
</target>
幸好build-impl.xml中使用了宏,这样我们不必在每个使用javac的地方都作改动了。
功能三:
去除对netbeans特定包的依赖(如swing-layout.jar)。
首先在项目目录下建立一个lib目录,在其中放入swing-layout.jar,如果还有其它的依赖也需要放入其它的依赖,为每一个依赖在build.properties(这是我们自己加入的文件)加入相应的属性,如:
libs.swing-layout.classpath=lib/swing-layout-1.0.jar
左边的名字可以在project.properties中找到,右边的值就是库对应的路径。
最后还要加上:
libs.CopyLibs.classpath=lib/build/org-netbeans-modules-java-j2seproject-copylibstask.jar
netbeans用这个库来copy lib,你需要将它copy到项目目录/lib/build(当然其它的目录也可以)下,这个库的原来路径是netbeans安装目录\ide6\ant\extra\org-netbeans-modules-java-j2seproject-copylibstask.jar。
功能四:
运行jar目标是添加额外的文件。重新定义-post-jar目标就可以了。
功能五:
添加新的目录,直接加在build.xml后面就可以了
分享到:
相关推荐
本文将详细介绍如何自定义NetBeans中的Ant脚本,以便更好地控制项目的清理、编译和打包过程。 首先,了解NetBeans工程的结构是至关重要的。每个NetBeans项目下都有一个`nbproject`文件夹,其中包含`build.xml`和`...
这个工具用于创建Web开发所需的目录结构,包括关键的`web.xml`、`build.xml`和`build.properties`配置文件。使用前需在Gel中创建一个空工程,并以智能文件夹形式添加`.jde`文件所在的目录。工具提供以下参数设定: ...
`build.xml`是Ant构建文件,它是NetBeans项目的一部分,用于自动化构建、编译和打包过程。通过这个文件,开发者可以指定源代码的位置、编译选项以及生成可执行文件或库的方式。在开发ImageJ插件时,需要修改此文件以...
其次,配置测试信息,这可以通过testng.xml或build.xml文件完成;最后,选择适合的方式运行TestNG测试,如命令行、Ant/Maven集成、Eclipse插件或IDEA和NetBeans等。 TestNG的特点包括: 1. 注解:TestNG允许开发者...
5. **断点调试**:在源代码中设置断点,当程序执行到该位置时,Netbeans会暂停,允许你查看变量值、单步执行、修改变量等。 6. **热部署**:由于Jetty的热部署特性,当你修改了源代码后,无需重新启动服务器,只需...
**build.xml** 文件是Ant构建脚本,它是Java项目中的一个重要组成部分。Ant是一个基于XML的构建工具,用于编译、测试和部署Java项目。在这个例子中,它定义了如何编译、测试和打包JAXB项目。 **catalog.xml** 文件...
- **工作原理**:ANT的核心是一个基于XML的构建脚本(默认为`build.xml`)。在脚本中,开发者定义了一系列的任务(targets),每个任务负责执行一项具体的构建操作,如编译源代码、生成文档等。这些任务之间可以建立...
`build.xml`文件是Ant构建脚本,它定义了编译、打包和部署应用的步骤。`manifest.mf`是Java应用程序的清单文件,包含关于主类和其他元数据的信息。`src`目录存放源代码,`nbproject`是NetBeans项目配置文件,`dist`...
开发者需创建一个名为`build.xml`的构建文件,其中包含编译、测试、打包等任务的定义。 **1.4 在Ant中编译Java代码** Ant提供了`javac`任务用于编译Java源代码。用户可以通过在`build.xml`中定义`<javac>`元素来...
综合以上分析,我们可以推测 "CompileProject" 是一个包含了Java Web应用的项目,使用Ant作为构建工具,可能使用Eclipse或NetBeans等IDE进行开发,并且有自定义的文件复制功能,以及独立的样式管理。此外,项目还...
5. **项目构建文件**:初步的Ant构建文件`build.xml`示例展示了如何配置项目的构建任务,包括项目名称、默认任务等基本元素。 6. **持续集成**:讨论了持续集成的概念,强调频繁提交代码和快速构建以尽早发现并修复...
- **Ant 入门介绍**:提供 Ant 基础知识,包括 build.xml 文件结构、任务(task)和目标(target)的概念。 - **在 Ant 中编译 Java 代码**:展示如何通过 Ant 编译 Java 源代码。 - **利用属性自定义构建脚本**:解释...
2. **自动格式化**:软件内置了多种常见的书目样式,如APA、MLA、Chicago等,用户可以直接选择预设样式,也可以自定义样式,快速生成符合要求的参考文献格式。 3. **导入导出功能**:Bib-it支持导入和导出BibTeX...
项目中提到的文件包括`manifest.mf`(程序清单文件),`build.xml`(Ant构建文件),`test`(测试代码目录),`src`(源代码目录),`build`(编译输出目录),以及`nbproject`(NetBeans项目的配置文件)。...
9. **build.xml**:另一个构建脚本,与mybuild.xml相似,可能用于特定的构建任务。 10. **nbproject**:这是NetBeans IDE的项目文件,包含项目的元数据和构建配置,便于在NetBeans环境中开发和管理XSong项目。 开源...
通过XML Schema,XMLBeans可以自动生成Java类,这些类可以直接与XML文档进行交互。 **Packet Extension** 在Smack中是指XMPP协议中的自定义扩展,它们允许开发者扩展标准的XMPP消息、IQ(信息查询)和 Presence ...
4. `build.xml` 或 `pom.xml`: 分别对应Ant或Maven构建系统,用于编译、打包和测试项目。 使用FindFileKu时,用户可能需要了解的基本操作包括: - 搜索文件:输入文件名或通配符,设置搜索范围,软件会快速列出...
最后,Maven与许多IDE工具(例如Eclipse、IntelliJ IDEA和NetBeans)都有良好的集成,它为开发者提供了方便的图形化界面进行项目管理和构建配置。 这本书通过实战讲解的方式,逐步引导初学者理解并掌握Maven的使用...
日历表格面板 [ConfigLine.java] 控制条类 [RoundBox.java] 限定选择控件 [MonthMaker.java] 月份表算法类 [Pallet.java] 调色板,统一配色类 Java扫雷源码 Java生成自定义控件源代码 2个目标文件 Java实现HTTP连接...