3

我正在将我的项目部署到要使用 java Web Start 部署的 Web 服务器。但是,Web Start 使用修改日期来确定是否再次下载资源(默认情况下)。

我想要的是一种只部署那些不存在的(jar)文件的方法。这可以通过在我所有的 jar 上使用构建版本号来实现,因此 2 个同名的 jar 具有相同的内容

笔记:

  • 由于从 svn 或 ivy 下载,jar 修改日期在构建中总是更新的(这就是我遇到这个问题的原因)
  • 有一种方法可以使用 sun 的下载 servlet、更多文件等,但我很懒,不需要它,从长远来看,这个(更简单的)解决方案会更健壮
4

4 回答 4

15

如果您正在使用蚂蚁复制任务(您没有明确表示您是),您可以尝试present选择器:http ://ant.apache.org/manual/Types/selectors.html#presentselect 。

<copy todir="target">
  <fileset dir="src">
    <present targetdir="target" present="srconly" />
  </fileset>
</copy>
于 2009-11-30T01:17:22.443 回答
2

您可以尝试将granularity属性设置得非常非常高,以基本上禁用“如果源文件比目标文件新,则复制具有相同名称的文件”功能。

于 2009-11-30T00:52:29.377 回答
0

我们使用 maven 和JavaFX 以及 WebStart 插件解决了这个问题,这些插件在 JNLP 中保留了 maven 布局和版本,并且使用“非唯一”SNAPSHOT 将保留相同的 jar(忽略时间戳)。

我知道它是 maven,所以对你不利,但有人可以试一试吗?

于 2009-12-06T17:35:36.873 回答
0

我们遇到了类似的问题,我最终实现了自己的 jar 任务来做我需要的事情。Ant 源代码是一个很好的起点;如果幸运的话,您也许可以将 Ant 的 jar 任务子类化。这并不像听起来那么困难,而且比我尝试或考虑的六种解决方法要简单得多。

于 2009-11-30T01:51:58.860 回答