java - 如何从一台机器针对另一台机器运行ant脚本?

标签 java maven ant

我已经使用 Ant 执行了以下操作。 我需要从机器 A 运行 ant 脚本,该脚本包含有关机器 B 的详细信息,如主机名、用户名、密码、要下载的目录、ftp 详细信息等,当脚本从机器 A 运行时,它应该使用 ftp 下载某个文件在机器 B 中。

我已经在脚本中给出了有关机器 B 的详细信息,但是当我运行脚本时,它会在机器 A 而不是机器 B 中下载文件。我缺少什么?或者有人可以帮我编写代码吗?

提前致谢。

这是代码:

在 Maven 中,我定义了机器 B 的详细信息:

<host>MachineB</host>
<host.username>user</host.username>
<host.password>pwd</host.password>

在 build.xml 中

<target name="Todownload_file" <mkdir dir="${download_dir}" />

    <ftp action="get" server="download_server_details" userid="user" password="pwd" remotedir="path">
        <fileset dir="${download_dir}">
            <include name="${file_name}"/>
        </fileset>
    </ftp>
</target>

正如我在评论中所说,机器 b 详细信息和 ftp 下载部分之间没有链接。有人可以帮忙吗?

最佳答案

您可以使用 sshexec 任务来运行远程命令,并且可以使用 sep 将文件从机器 B 复制/推送到机器 B。从概念上讲,您可以通过几种方法来执行此操作。

第一种方法: 将文件从远程 ftp 站点下载到计算机 A,然后使用 scp 任务将其复制到计算机 B。最后使用 sshexec 在机器 B 上运行该文件。

第二种方法: 通过 sshexec 从机器 A 直接在机器 B 上运行curl 或 ftp 命令,将文件直接下载到机器 B 上。然后运行另一个 sshexec 任务以在机器 B 上执行该文件。

第三种方法: 编写一个可在机器 B 上运行的脚本 (workflowscript.sh)(适用于 Mac/Linux powershell 的 bash/适用于 Windows 的 VBScript),并在此脚本中放置通过 ftp 或 curl 或其他方式执行其他脚本下载的逻辑。在机器A上使用scp将workflowscriipt.sh复制到机器B,然后使用sshexec执行它。

在所有上述方法中,您需要了解什么在哪里运行。机器 A 只是向机器 B 推送文件或发送远程命令,机器 B 完成所有工作。

关于java - 如何从一台机器针对另一台机器运行ant脚本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12466397/

相关文章:

java - 使用 rsa key 解密字符串

java - RESTeasy 中的原始图像

java - 有关 Android 电影类的信息

java - CI/CD 上的 Maven 初始化

java - 谁真正实现了可序列化的方法?

java - 模块化 Maven 项目中的域类应该基于接口(interface)吗?

java - 使用 Maven 的安全性如何?

java - 在 ant buildfile 中添加带有 libs 的文件夹

java - 使用 ant 使用库创建可执行 jar 后出现 NoClassDefFoundError

java - 我的 ant 构建突然开始给出 javax.naming.NoInitialContextException : Need to specify class name in environment or system property