Netbeans 是';复制文件';一个标准的蚂蚁任务?

Netbeans 是';复制文件';一个标准的蚂蚁任务?,netbeans,ant,Netbeans,Ant,我有一个NetBeans项目,我正试图从命令行ant手动编译它。在安装了NetBeans的同一台机器上运行时,它可以完美地工作 但是,如果我在中央连续集成服务器(未安装NetBeans)上运行ant,它将在任务中失败: BUILD FAILED /var/lib/jenkins/workspace/project_name/nbproject/build-impl.xml:697: Problem: failed to create task or type copyfiles Cause: T

我有一个NetBeans项目,我正试图从命令行
ant
手动编译它。在安装了NetBeans的同一台机器上运行时,它可以完美地工作

但是,如果我在中央连续集成服务器(未安装NetBeans)上运行
ant
,它将在
任务中失败:

BUILD FAILED
/var/lib/jenkins/workspace/project_name/nbproject/build-impl.xml:697: Problem: failed to create task or type copyfiles
Cause: The name is undefined.
Action: Check the spelling.
Action: Check that any custom tasks/types have been declared.
Action: Check that any <presetdef>/<macrodef> declarations have taken place.
当我看到,
copyfiles
甚至不是一个合适的ant任务。怎么了

如何在没有安装NetBeans的机器上运行此程序?

根据,我验证了依赖项,并且确实,
lib/CopyLibs
目录在我们的源代码管理repo中没有版本控制。这就是为什么我的本地环境能够编译,而CI服务器却不能

在将依赖项添加到classpath-
org-netbeans-modules-java-j2seproject-copylibstask.jar之后,ant构建成功了


就我个人而言,我认为NetBeans需要一个外部依赖来完成一个任务是荒谬的,这个任务作为标准的
ant
任务存在

“重要的编码注意事项:二进制文件在过滤时损坏的原因是过滤涉及使用读卡器类读取文件。这种编码指定文件的编码方式。有许多不同类型的编码-UTF-8、UTF-16、Cp1252、ISO-8859-1、US-ASCII和(批次)其他。在Windows上,默认字符编码为Cp1252,在Unix上,通常为UTF-8。对于这两种编码,都存在非法字节序列(UTF-8中的字节序列多于Cp1252)

Reader类如何处理这些非法序列取决于字符解码器的实现。当前的Sun Java实现是将它们映射到合法字符。以前的Sun Java(1.3及更低版本)引发了格式错误的PutException。IBM Java 1.4也引发了此异常。导致损坏的是字符的映射

在Unix上,默认值通常为UTF-8,这是一个大问题,因为很容易编辑文件以包含来自ISO-8859-1的非美国Ascii字符,例如丹麦oe字符。当Ant复制(过滤)该字符时,该字符会转换为问号(或类似的东西)

Ant所能做的不多。它无法确定哪些文件是二进制文件-一个UTF-8版本的Korean将有很多字节位于最高位。目前的Sun Java实现不会通知它非法字符序列。”


所以,创建NetBeans copyfiles任务似乎是为了避免复制Jar文件时出现不可修复的错误。没有听起来那么荒谬。

要么抓取NetBeans的ant task jar(无论在哪里),要么使用标准任务复制功能。是的,这正是我所缺少的。我的回答中描述了确切的罐子。谢谢在我再次面对这个问题之后。。。我重新安装了修复了问题的netbeans:)看看我的答案,我重新安装了修复了问题的netbeans:)
<target depends="init" name="library-inclusion-in-archive" unless="dist.ear.dir">
    <copyfiles files="${file.reference.some_dependency.jar}" todir="${build.web.dir}/WEB-INF/lib"/>
</target>