我的环境:XP ANT1.7
运行工程的bulid.xml报错: 缺少根组件报错
在gg中找到如下文章:
转载地址:http://www.javaresearch.org/article/55190.htm
中文问题没商量”之Ant中的中文问题
来源:javajia
在软件系统中,由于存在着各种各样的字符编码问题,比如另我们非常头痛的中文问题。因此,现在趋向于使用UTF-8编码作为软件中通过编码格式,从而可以避免大多数字符编码的问题。本文跟《80前》一文一样,以Spring项目无关,请“春迷”们自重、没事勿扰,文中不足之处欢迎大家批评指教。
在Java开发中,我们经常使用Ant来编译及打包项目。默认情况下Ant会去调用一个名为build.xml文件,文件中定义了相关的单元及任务等,可以根据用户命令执行相应的任务单元。
比如,在很多开源项目如Spring、webwork、EasyJWeb、EasyDBO等,其根目录下都有一个build.xml文件。
在国外的开源项目中,build.xml文件中的内容全部是英文字符,因此build.xml使用普通的ANSI或UTF-8或GBK都没问题,也不会遇到字符编码问题。而对于国产的开源项目EasyJWeb、EasyDBO来说,为了方便国内的用户,肯定在文件会包含一些中文说明。而默认情况下包括中文字符,格式为ANSI的build.xml文件是无法正确运行的,这应该跟本人所写的Dom4j的原因类似。
此时,我们需要把build.xml文件改成UTF-8格式,并指定xml文件的格式为utf-8。如下面是EasyJWeb开源项目中build.xml文件的部分内容:
< ?xml version="1.0" encoding="UTF-8"?>< project name="EasyJF" default="usage" basedir="." xmlns:artifact="urn:maven-artifact-ant">
< property file="easyjfbuild.properties" />
< !--目录定义-->
< property name="main.src.dir" value="${basedir}/src/main" />
< property name="test.src.dir" value="${basedir}/src/test" />
< property name="lib.dir" value="${basedir}/lib" />
< property name="env.lib.dir" value="${lib.dir}/build/" />
< property name="doc.dir" value="${basedir}/doc" />
< property name="build.dir" value="${basedir}/build" />
< property name="release.dir" value="${basedir}/release" />
< property name="web.dir" value="${basedir}/webapps" />
< property name="ide.dir" value="${basedir}/misc/ide" />
< !--项目属性-->
< property name="project.provider.name" value="easyjf" />
< property name="project.name" value="jweb" />
< property name="project.author" value="http://www.easyjf.com/" />
< property name="project.version" value="0.6" />
<!--发布文件名-->
….
这里的问题是如何建一个UTF-8格式的build.xml文件。
错误的习惯:
在通常情况下,我们习惯于使用windows下的记事本等工具直接编码xml文件内容,并另存为UTF-8格式,如下图所示:
这种方式建立的build.xml文件是不正确的,最让人烦恼的是具有非常的不稳定性。这个不稳定性表现在一些系统下能正确使用,而一些系统下会出现类似如下的错误:
D:\EasyJF\wlhy\bin>build.bat
Buildfile: ..\build.xml
BUILD FAILED
D:\EasyJF\wlhy\build.xml:1: 缺少文件根组件
Total time: 0 seconds
请按任意键继续. . .
这个错误也是EasyJF团队中的williamRaym在写EasyJWeb的build脚本时发现的,而且后来又很多网友反映类似的错误,如当前EasyJF下的iula 项目就存在这个问题:
http://www.easyjf.com/html/bbs/20060814/1208824819851986.htm
(也许是我的机器容错性好,不会报错,呵呵!)。
正确的方法:
前面说了,用记事本建立UTF-8格式的xml文件是不正确的,经过我们多次实践,正确的方法之一是使用Eclipse来建这个xml文件,在建立工程的时候需要把整个工程的字符集设置成为UTF-8,然后直接建立一个build.xml文件,默认情况下该文件以UTF-8的格式保存。
这样建立起来的脚本文件,使用Ant的时候,不管build.xml中包含什么中文字符,都能正常运行。当然,应该还可以用其它的开发工具建立UTF-8格式的文件,还请大家来试验。另外也可以用JAVA自己写一个小程序来把ANSI格式的文件转成UTF-8文件,这样也没问题。
小结:
之所以很多开源项目的build过程中不会存在问题,是因为他的脚本文件中没有包含中文字符或其它字符。面在国产开源项目中,由于存在中文注释、说明等,所以在建立build.xml文件的时候需要作一些特殊的处理,使用UTF-8格式的文件。当然,本文还重点提出了两种建立UTF-8文件的方法,其中用记事本是不稳定的,错误的;而用专业Java开发工具或JDK建立的脚本才是正确、稳定的。
(注:本文作者,EasyJF开源团队 大峡,转载请保留作者声明!)
分享到:
相关推荐
阿里设计规范AntDesign官方组件包XD是一个专门为 XD(Adobe Experience Design)用户提供的设计资源集合,旨在帮助设计师高效、一致地创建符合阿里巴巴集团UI标准的产品界面。AntDesign 是阿里巴巴开源的一套基于...
《AntDesign3.9Axure组件:前端设计与原型构建的高效工具》 在现代互联网产品开发中,前端设计扮演着至关重要的角色。AntDesign3.9Axure组件的出现,为产品经理和前端设计师提供了一套高效且强大的设计工具。这个...
Ant Design 是基于 Ant Design 设计体系的 React UI 组件库,主要用于研发企业级中后台产品。 ant design4.40-web组件库 是基于Axure ,参考Ant Design 的样式而设计的一套模板库,是产品经理必备套件库,Ant Design...
《AntDesign3.9Axure组件:原型设计的利器》 在互联网产品开发流程中,原型设计是一个至关重要的环节,它能清晰地呈现产品的功能结构和交互方式,为后续的开发工作提供明确的方向。AntDesign3.9Axure组件正是这样一...
标题中的“AXURE Ant Design 4.40 - web组件库 ant design pro 后台模板 产品经理”指的是一款基于Axure设计工具的组件库,它整合了Ant Design Pro的4.40版本的Web界面元素和后台管理模板,特别适用于产品经理进行...
《Ant Design Library 3.0 与 Axure 组件库详解》 Ant Design Library 3.0 是一款专为Axure设计的组件库,旨在帮助设计师高效、精准地构建高质量的原型。Ant Design,源自阿里巴巴的前端框架,以其优雅的设计风格和...
Ant Design 风格 Axure组件移动端 完整版.rplib
基于AntDesign的组件库,方便你使用作图。
Ant Design Vue则是基于Vue.js实现的Ant Design设计语言的UI组件库,有着优雅的界面和强大的交互体验。将这两个库结合使用,可以创建出既美观又功能强大的数据展示和操作界面。 在"用于在vxetable表格中适配ant...
而“Axure组件库ant.zip”便是这样的资源之一,它为使用Axure原型设计工具的设计师提供了一个基于蚂蚁金服Ant Design设计系统的组件库。这个组件库的出现,无疑为产品设计和开发团队带来了一场效率革命。 首先,...
Ant Design 移动端设计规范,一个基于 Preact/React/React Native 的 UI 组件库,是 Ant Design 的移动规范的 React 实现,服务于蚂蚁及口碑无线业务。 image.png 特性 基于 Ant Design 移动设计规范。 规则化的...
阿里设计规范AntDesign官方组件包是一个为前端开发者和设计师量身打造的设计系统,它源于阿里巴巴集团内部的设计实践,现已成为开源社区中广受欢迎的UI框架。AntDesign的主要目标是提供一套高效、稳定、统一的用户...
而Ant Design Vue是蚂蚁金服推出的一套面向企业级应用的高质量Vue组件库,它提供了丰富的UI组件,极大地提高了开发效率。在Ant Design Vue中,loading组件是一个不可或缺的部分,它通常用于显示数据加载状态,为用户...
Ant Design Axure组件库包含了大量的预设组件,如按钮、表单、表格、导航、模态框、提示信息等,这些组件不仅样式丰富,而且遵循了Ant Design的统一设计语言,确保了设计的一致性和易用性。此外,该库还提供了丰富的...
Ant Design Vue则是基于Ant Design设计规范的一个UI组件库,它为Vue.js提供了丰富的组件,使得开发者能够快速构建出美观且响应式的用户界面。 标题“基于antdesign的vue组件”暗示了我们讨论的主题是关于如何在Vue...
Ant Design for React 的 DatePicker 日期组件设置默认显示中文的方法 在 Ant Design for React 的 DatePicker 日期组件中,默认情况下显示英文,但是在某些情况下,我们需要将其设置为中文。今天,我们将学习如何...
"ant-1.9.1组件包大集合"很可能是包含了Ant 1.9.1版本的各种组件和资源,便于开发者进行快速配置和使用。 Ant 的核心概念是基于XML的构建文件,通常命名为build.xml。这个文件定义了一系列的任务(tasks),这些...
标题中的"Ant design axure设计库"指的是将Ant Design的组件和样式集成了到Axure中的设计资源库。这使得原型设计师能够直接在Axure中使用Ant Design的组件,无需从头开始设计每个元素,极大地提高了设计效率和一致性...
1,什么是ant ant是构建工具 2,什么是构建 概念到处可查到,形象来说,你要把代码从某个地方拿来,编译,再拷贝到某个地方去等等操作,当然不仅与此,但是主要用来干这个 3,ant的好处 跨平台 --因为ant是使用java实现...
在Ant Design Vue这一流行的前端UI库中,`disabled`属性是一个关键特性,它允许开发者禁用用户对特定组件的操作,从而实现对用户交互的控制。禁用状态通常用于表示组件处于不可操作或非活动状态,这在许多场景下都是...