2

我在windows 7上使用java和eclipse,我正在尝试构建一个服务器程序,它将在我的网络上的另一台(ubuntu)机器上运行。

如何让 eclipse 将构建的类文件保存到外部位置(我有一个驱动器映射,或者它甚至可以通过 ssh/sftp/whatever)?

我在那台机器上创建了一个 git 存储库,因此类文件保存在那里,但是我正在使用的外部库(位于构建路径上)没有保存为存储库的一部分。理想情况下,我想让eclipse自动将使用的构建类和库复制到另一个目录中(甚至更理想的是,当我单击“运行”时让它自动运行/终止程序,尽管我怀疑这可能有点过分乐观的)。

我认为我认为与 eclipse 一起安装的 ant 可以做到这一点,但我不知道如何做到这一点。

4

1 回答 1

3

您提到了 jar 文件,它们实际上是依赖项。如果您真的不想将这些 jar 文件包含在您的存储库中,您可能想看看像 Ivy 这样的依赖管理系统,或者切换到 Maven。

或者,您始终可以使用 Ant 的构建“脚本”(尽管它们是 XML,而不是真正的“脚本”)来复制依赖项。

如何让 eclipse 将构建的类文件保存到外部位置(我有一个驱动器映射,或者它甚至可以通过 ssh/sftp/whatever)?

很难想出解决“如何将它们保存到外部位置”的方法。但是,您可以只编写一个目标,使用<scp>任务(基于 ssh)或<ftp>任务,在运行标准构建后复制文件。

理想情况下,我想让 eclipse 自动将使用的构建类和库复制到另一个目录中。

Eclipse 内置了对 Ant 的支持。我不使用 Eclipse,但我使用 Netbeans。在 Netbeans 中,实际上是使用 Netbeans 生成的 Ant 构建文件来构建项目的。而且,您可以自定义构建文件,添加您自己的目标,然后,您可以在 IDE 中运行您自己的目标。

例如,你有一个build目标,一个deploy目标,一个run目标。第一个是Eclipse生成的,你不需要关心,后两个是你自己写的。只需编写另一个目标,例如all,然后使用<antcall>依次运行上面的三个目标。然后,在 Eclipse 中,您可以直接运行alltarget 来获取 Ant 处理的所有事情。

更理想的是,当我单击“运行”时,它会自动运行/终止程序,尽管我怀疑这可能有点过于乐观。

目标机器是 Linux 机器,因此您可以在其上使用 apt-get 轻松安装 SSH 服务器。在你的 ant 构建文件中写入两个目标,一个是run,另一个是kill.

run目标内部,您可以使用它<sshexec>来运行您的应用程序。您唯一需要注意的是在该机器上定义的环境变量可能在 ssh 会话中不可用。但这只是一个配置问题。至少您可以将变量放入/etc/environment,尽管这不是最佳做法。

kill目标可能稍微复杂一些。但是,在我看来,如果你可以写一个startup.sh来启动一个应用程序,你总是可以写一个stop.sh来关闭它(看看Tomcat的catalina.sh)。

而且,kill可以在 Eclipse 中调用目标。

于 2012-05-03T02:40:08.533 回答