使用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
目标。