有问题的行是此功能代码段
中的第一个包<feature name="stuff-common-security">
<bundle>wrap:mvn:org.springframework/ldap/1.3.0.RELEASE,mvn:com.mycompany.stuff/stuff-common-security/1.0-SNAPSHOT/bnd/spring-ldap</bundle>
<bundle>mvn:org.springframework.security/spring-security-core/3.1.0.RELEASE</bundle>
<bundle>mvn:org.springframework.security/spring-security-ldap/3.1.0.RELEASE</bundle>
<bundle>mvn:com.mycompany.stuff/stuff-common-security/1.0-SNAPSHOT</bundle>
</feature>
create-kar目标因此错误而失败:
[ERROR] Failed to execute goal org.apache.karaf.tooling:features-maven-plugin:2.2.9:create-kar (create-kar) on project stuff-demo:
Failed to create kar archive:
Could not find artifact org.springframework:ldap:stuff-common-security:1.0-SNAPSHOT:1.3.0.RELEASE,mvn:com.mycompany.stuff
in maven.mycompany.com (http://maven.mycompany.com/artifactory/libs-release-local)
[ERROR]
[ERROR] Try downloading the file manually from the project website.
[ERROR]
[ERROR] Then, install it using the command:
[ERROR] mvn install:install-file -DgroupId=org.springframework -DartifactId=ldap
-Dversion=1.3.0.RELEASE,mvn:com.mycompany.stuff -Dclassifier=1.0-SNAPSHOT
-Dpackaging=stuff-common-security -Dfile=/path/to/file
似乎是错误地将bundle元素文本误解为将包装器视为版本号的一部分。
<bundle>wrap:mvn:org.springframework/ldap/1.3.0.RELEASE,mvn:com.mycompany.stuff/stuff-common-security/1.0-SNAPSHOT/bnd/spring-ldap</bundle>
Karaf本身很高兴作为这个捆绑语法的蛤蜊,所以我不认为我在那里犯了错误。
有没有其他方法可以表达这一点,所以我没有从create-kar中得到这个错误?
答案 0 :(得分:1)
尝试使用'\'或使用CDATA部分转义逗号(我在mailing list上注明了一些转义问题):
<bundle><![CDATA[
wrap:mvn:org.springframework/ldap/1.3.0.RELEASE,mvn:com.mycompany.stuff/stuff-common-security/1.0-SNAPSHOT/bnd/spring-ldap
]]></bundle>
如果这不起作用 - 我怀疑该插件没有使用实际的URL处理程序而只是剥离wrap
协议,因此会建议filing a bug
当您使用分类器时,您可能只想在stuff-common-security
的pom中进行嵌入,但这可能会使您的构建过于毛茸茸=]
如果是这样创建一个仅包含这两个模块作为依赖关系的maven模块,那么使用BND / maven-bundle-plugin的embed dependencies来合并它们。