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が、それはあなたのビルドを少し毛むくじゃらにするかもしれません =]

その場合、これら 2 つのモジュールのみを依存関係として持つ Maven モジュールを作成し、BND/maven-bundle-plugin の埋め込み依存関係を使用してそれらをマージします。

于 2013-03-27T00:29:20.357 に答える