2

我开发了一个项目,其中包含一个包,其唯一目的是将文件写入运行它的所有容器上的某个位置。

该文件会经常更改,但并不真正构成版本号的增加。我也不想在我的存储库中有 100 个版本的这个包。所以我把它留作快照。如果我正在积极开发保险丝织物项目,这个问题也将适用。

构建完成后,我将捆绑包部署到我的结构的 Maven 代理:

mvn deploy:deploy-file -Dfile=target/file-1.0-SNAPSHOT.jar -DartifactId=file -DgroupId=com.some.id -Dversion=1.0.0 -Dtype=bundle  -Durl=http:// username:password@hostname:port/maven/upload

然后我可以将我的捆绑包添加到配置文件中:

mvn:com.some.id/file/1.0.0

这是第一次。

然后我对文件进行更改,重新构建包,并使用完全相同的命令进行部署。我从配置文件中删除捆绑包并将其重新添加。如果我检查 $FUSE_HOME/data/maven/proxy/com/some/id/file/1.0.0/,fabric 服务器上的 maven 代理中包含新捆绑包

但是在单独的服务器上运行配置文件的所有容器上,捆绑包不会更新。我假设是因为版本没有改变。但是,fabric 应该足够聪明,可以区分,因为 md5 应该不同。

现在我可以更改版本号并解决我的问题,或者手动清除 maven 代理。但是在生产中,我将无法清除每台服务器上的代理,我也不能指望有人在每次对这个文件进行小幅更改时为捆绑包提供一个唯一版本(这应该经常发生)。

我已经尝试将 updatePolicy=always 添加到结构 Maven 配置中,但我相信这只影响它从中提取的存储库,而不影响代理。

欢迎任何有关解决此问题的最佳方法的建议。

4

1 回答 1

0

如果您使用的是容器,您的旧工件必须缓存在

$FUSE_HOME/instances/CONTAINER_NAME/data/maven/agent/

从这里删除旧的人工制品并停止/启动您的容器。

于 2014-08-15T11:21:55.180 回答