【问题标题】:How to move only the current file with Eclipse and/or Ant?如何使用 Eclipse 和/或 Ant 仅移动当前文件?
【发布时间】:2010-09-22 22:07:40
【问题描述】:

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

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

【问题讨论】:

    标签: java eclipse ant


    【解决方案1】:

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

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

    ant -Dfile=myfile.jsp 更新

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

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

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

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

      • 我们正在使用源代码控制。这里的问题不在于缺乏源代码控制。问题是多个开发人员必须共享一个应用服务器。
      • 那你为什么不用它来获取大家最新的测试机呢?如果您依赖手动流程(如您已接受的流程),您更有可能忘记复制某些内容。
      【解决方案3】:

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

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

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

      【讨论】:

      • 这行得通。谢谢!对于其他想要做类似事情的人,我使用了外部工具配置参数:-Dresource_name=${resource_name}
      • 谢谢你的报告,Shane。已编辑答案以包含正确的参考。
      【解决方案4】:

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

      【讨论】:

        【解决方案5】:

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2017-04-22
          • 1970-01-01
          • 1970-01-01
          • 2012-05-11
          • 1970-01-01
          • 2012-07-10
          • 1970-01-01
          相关资源
          最近更新 更多