1

有问题的行是此功能片段中的第一个

<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>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 得到这个错误?

4

1 回答 1

1

尝试使用 '\' 转义逗号或使用 CDATA 部分(我在邮件列表中发现了一些转义问题):

<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协议,所以建议提交一个错误

当您使用分类器时,您可能只想在 pom 中进行嵌入,stuff-common-security但这可能会使您的构建有点太毛茸茸=]

如果是这样创建一个只有这两个模块作为依赖项的 maven 模块,然后使用 BND/maven-bundle-plugin 的嵌入依赖项来合并它们。

于 2013-03-27T00:29:20.357 回答