使用java,eclipse和ant自动复制构建的文件和库

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

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

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

我认为我相信用ant安装的ant可以做到这一点,但我不确定如何实现它。

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

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

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

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

理想情况下,我希望eclipse将自动生成的内置类和库复制到另一个目录中。

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

例如,您有一个build目标,一个deploy目标,一个run目标。 第一个是由Eclipse生成的,您不需要关心它,而后两个是由您编写的。 只需编写另一个目标,比如说all ,并使用一个接一个地运行上面的三个目标。 然后,在Eclipse中,您可以直接运行all目标以获取Ant处理的所有内容。

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

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

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

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

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