面料:轮廓刷新和面料:手表不适用于Fuse 6.3

时间:2017-09-05 05:15:40

标签: redhat apache-karaf jbossfuse fabric8

我正在使用Jboss Fuse 6.3。我创建了一个带有2个子容器的结构环境。我已经为一个容器分配了一个测试配置文件。我正在尝试刷新我的个人资料,因为我必须更新一些属于我的测试配置文件的软件包。

为此,我登录到Fabric控制台并执行 fabric:profile-refresh test-profile

但是,当我看到捆绑包的标题 Bnd-LastModified 时,它似乎没有更新,仅引用旧标题。

我尝试使用 fabric:watch * 命令,但没有运气。

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:2)

简短回答:  如果您的捆绑包不是SNAPSHOT,那么就没有尝试获取"更新"发布的版本。对于maven,每个非SNAPSHOT都是不可变的。

更长的回答: 如果我必须更新某些捆绑,则表示mvn clean install新版本到~/.m2/repository,那么它应该由Fuse选择 - 假设~/.m2/repository是您的默认存储库之一 - 请检查org.ops4j.pax.url.mvn PID,org.ops4j.pax.url.mvn.defaultRepositories属性。

但是,如果您希望Fuse从某个远程存储库(Nexus,Artifactory,...)下载更新版本的非SNAPSHOT工件,则首选本地存储库中的版本。默认情况下,在Fuse 6.3中,此本地存储库位于$FUSE_HOME/data/repository中。 org.ops4j.pax.url.mvn PID中有一个名为org.ops4j.pax.url.mvn.updateReleases的特殊选项,允许您设置非规范 Maven行为以实际更新非SNAPSHOT。

在面料模式(您正在使用)中,它有点复杂。

io.fabric8.agent PID和org.ops4j.pax.url.mvn.*属性中有maven解析器的fabric-agent配置 - 它们的含义与独立模式下的org.ops4j.pax.url.mvn PID和org.ops4j.pax.url.mvn.*属性相同。

为了验证Maven解析的工作原理,您可以在karaf个人资料中取消注释这些日志设置:

# help with identification of maven-related problems with fabric-maven
#log4j.logger.org.eclipse.aether = TRACE
#log4j.logger.org.apache.http.headers = DEBUG
#log4j.logger.io.fabric8.maven.util = TRACE
#log4j.logger.io.fabric8.maven.url = TRACE
#log4j.logger.io.fabric8.agent.download = DEBUG

另请阅读我关于pax-url-aether和Maven的文章: