1

我正在一个由 Web 应用程序开发人员组成的小型团队中工作。我们在自己的机器上编辑 Eclipse 中的 JSP,然后将它们转移到共享的应用程序服务器上以测试更改。我有一个 Ant 脚本,它将获取我机器上的所有 JSP 并将它们移动到应用程序服务器,但只有当我机器上的 JSP 是“更新的”时才会覆盖 JSP。这在大多数情况下都很有效,但并非所有时候都有效。我们的更新方法不保留文件更改日期/时间,因此我机器上的更新可能会将文件日期/时间设置为现在,而不是文件实际上次更改的时间。如果其他人在 1 小时前处理了该文件(但尚未提交更改),那么我 PC 上的旧文件实际上将具有更新的日期。因此,当我运行 Ant 脚本时,它会用旧文件覆盖他们的更改。

我正在寻找的是一种简单的方法来移动我目前正在处理的文件。有没有办法在 Ant 脚本中指定“当前”文件?还是在 Eclipse 中移动当前文件的简单方法?也许是一个很好的插件来做这种事情?我可以使用 Windows 资源管理器单独移动文件,但我更希望能够从 Eclipse 中执行此操作。

4

5 回答 5

1

将目标添加到您的ant构建文件中,以使用@matt b 描述的命令行属性定义复制单个 jsp。

创建一个新的外部工具启动配置文件并使用“字符串替换首选项”在编辑器中传递对活动文件的引用 ( resource_name)。

请参阅 Eclipse 帮助 | Java 开发用户指南 | 参考 | 偏好 | 运行/调试 | 发射 | 字符串替换

于 2008-11-18T19:34:18.033 回答
0

Ant 怎么知道哪个文件是“当前”的?它没有办法知道。

可以将文件的名称传递到您的 Ant 脚本中(通过利用您传递给 Ant 的任何-D参数在您的脚本中自动成为参数这一事实)...

蚂蚁 -Dfile=myfile.jsp 更新

让你的脚本看起来像......

<copy file=${myfile} todir="blah"/>

...但是在命令行上不断输入文件名可能会很痛苦。

老实说,当您有多个开发人员共享一个环境时,您所描述的问题类型是不可避免的。我认为对您和您的团队长期而言,更好的方法是让每个开发人员在本地应用程序服务器实例上工作/测试,然后再提升代码。这消除了与其他人共享应用服务器时的所有麻烦、瓶颈和调度问题。

于 2008-11-18T19:03:47.220 回答
0

任何时候你有多个人在做同一件事时,你都应该真正使用源代码控制(好吧,无论如何你都应该使用它,但这是一个不同的对话)。这样,当发生此类冲突时,该工具将知道并让某人执行合并,这样就不会丢失任何人的更改。然后,测试服务器可以在源代码的干净签出上运行,每个开发人员还可以在本地测试完整的应用程序,因为每个人的更改都将通过源存储库立即提供给他们。

于 2008-11-18T19:05:40.273 回答
-1

我建议你使用源代码控制。我更喜欢颠覆。每当有人提交新代码时,您都可以使用CruiseControl自动构建。

于 2008-11-18T20:21:07.203 回答
-1

antrunner4e 插件正是您正在寻找的——请参阅http://sourceforge.net/projects/antrunner4e/

于 2013-12-15T23:07:07.000 回答