【问题标题】:maven bundle plugin No translation found for macro:maven bundle plugin 找不到宏的翻译:
【发布时间】:2014-05-14 19:19:49
【问题描述】:
我为 bundle spring 项目使用了 maven bundle 插件。我在我的项目中使用 spring 属性占位符。当我构建我的项目时,我会收到以下警告:
[警告] Bundle groupId:artifactId:bundle:1.9-SNAPSHOT:找不到宏的翻译:spring.property
如何防止出现此警告消息?可能是一些 Maven 捆绑插件设置可以帮助我吗?
谢谢
【问题讨论】:
标签:
spring
osgi
maven-bundle-plugin
【解决方案1】:
在资源插件完成后,maven-bundle-plugin(在撰写本文时为 2.5.3 版)似乎有自己的资源过滤功能。如果资源插件无法替换属性,它将简单地保持原样。当然,如果该属性位于 Spring 上下文文件中以在运行时由 Spring 替换,那么这就是您想要的。但是剩下的属性会混淆 bundle 插件。
我能找到的唯一解决方法是禁用 Spring 上下文文件的资源过滤。在你的 POM 的构建部分添加一些类似这样的内容:
<resources>
<!-- globally enable resource filtering -->
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
<!-- then disable it for specific resources -->
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*-context.xml</include>
</includes>
<filtering>false</filtering>
</resource>
</resources>
您也可以反过来,将要过滤的文件显式包含在启用过滤和全局禁用过滤的资源声明中。