我必须通过FTP在TeamCity-Agent上构建后复制文件。普通的建筑工作本身就很好。自定义脚本的触发也会成功完成。"通过ftp复制文件"步骤失败,出现以下错误:
[15:34:31]: copyFiles
[15:34:31]: [copyFiles] ftp
[15:34:31]: [ftp] Could not create type ftp due to java.lang.NoClassDefFoundError: org/apache/commons/net/ftp/FTPClientConfig
我在网上搜索了一会儿,发现了很多次相同的答案:"你必须把commons.net .jar和jakarta-oro.jar放在你的ANT-plugin目录下。"所以我下载了这两个文件并将其复制到C:TeamCitybuildAgentlib中,但错误仍然存在。
现在的问题是:
我必须把这些文件复制到哪里才能使FTP工作?还是我走错了方向?
您把jar放到了错误的位置,它一定在Ant的类路径中,而不是构建代理的类路径中。
您应该找到ant.zip文件(TeamCityWEB-INFpluginsant-toolagentant.zip
),并将所需的jar(例如commons-net-1.4.1.jar)放在ant.zip文件的antlib
目录下。
zip重新打包后,TeamCity将用新的Ant版本更新构建代理,并且 commons.net 依赖项将通过其自己的类路径自动提供给Ant。
请注意,每次将TeamCity更新到新版本时,都必须重复此步骤。
另一个选择是在构建代理机器上手动安装Ant,并配置TeamCity以使用自定义Ant安装(在Ant的lib目录中包含所有必需的自定义依赖项),但是如果您有许多构建代理,则不方便,但是在更新TeamCity服务器时不必重复此步骤。
反网络任务工具与TeamCity捆绑在一起。此工具包含FTP、ssheec、scp和mail所需的jar文件。
附加的Ant命令行参数:-lib "%teamcity.tool. "ant-net-tasks%"