1

私はmavenが初めてです。

com.jcraft.jschopendaylight コントローラー プロジェクトにjar 依存関係 ( ) をインポートしようとしています。コードは正常にコンパイルされます。ただし、コントローラーを実行すると、次のエラーがスローされます。


!ENTRY org.opendaylight.controller.samples.ssr 4 0 2013-10-11 10:25:14.624 !MESSAGE FrameworkEvent ERROR !STACK 0 org.osgi.framework.BundleException: バンドル "org.opendaylight.controller.samples.ssr_0 .4.0.SNAPSHOT [36]" を解決できませんでした。理由: 制約がありません: Import-Package: com.jcraft.jsch; version="0.0.0" at org.eclipse.osgi.framework.internal.core.AbstractBundle.getResolverError(AbstractBundle.java:1332) at org.eclipse.osgi.framework.internal.core.AbstractBundle.getResolutionFailureException(AbstractBundle.java) :1316) org.eclipse.osgi.framework.internal.core.BundleHost.startWorker(BundleHost.java:323) で org.eclipse.osgi.framework.internal.core.AbstractBundle.resume(AbstractBundle.java:390) でorg.eclipse.osgi.framework.internal.core.Framework.resumeBundle(Framework.java:1176) org. opendaylight.controller.logging.bridge.internal.LogListenerImpl@190c63b2] エラー ooclogging.bridge.OSGI2SLF4J - バンドル:org.opendaylight.controller.samples.ssr メッセージ:FrameworkEvent エラー例外:org.osgi.framework.BundleException: バンドル "org .opendaylight.controller.samples.ssr_0.4.0.SNAPSHOT [36]" を解決できませんでした。理由: 制約がありません: Import-Package: com.jcraft.jsch; バージョン="0.0.0"


そのパッケージをインポートしました。パッケージ org.opendaylight.controller.samples.ssr は私が追加したものです。基本的に、サンプルのパッケージの 1 つを変更しました。問題は、このパッケージのクラスの 1 つに 1 つの jar 依存関係 com.jcraft.jsch をインポートしようとしていることです。しかし、この jar のインポートには問題があります。

この問題の後、ここ数週間、私は苦労しています。提案や解決策をお願いします。前もって感謝します。

4

1 に答える 1

1

OpenDaylight でも同じ問題に直面していました。試行錯誤の末に私が見つけた解決策は次のとおりです(不要な手順が見つかった場合はお知らせください)。

あなたの場合の Maven 依存関係には、グループ ID がcom.jcraft、アーティファクト ID がjsch、バージョンが0.1.31 (たとえば)、インポートされたパッケージが ias com.jcraft.jschになります。また、OpenDaylight モジュールはorg.opendaylight.controller.samples.ssr です

ファイルdistribution/opendaylight/opendaylight-osgi-launcher.launchおよびdistribution/opendaylight/opendaylight-osgi-launcher-local.launchで、依存関係とモジュールを次のタグに追加します。

...
<stringAttribute key="target_bundles" value="com.jcraft.jsch@default:default,ch.qos.logback.classic@default:default, ch.qos.logback.core@default:default ..."/>
.
.
<stringAttribute key="workspace_bundles" value="org.opendaylight.controller.samples.ssr@default:default,org.opendaylight.controller.arphandler@default:default, ..."/>
...

ファイルdistribution/opendaylight/opendaylight.targetに、ユニット エントリを次のように追加します。

...
<unit id="com.google.gson" version="2.1.0"/>
<unit id="com.jcraft.jsch" version="0.1.31"/>
...

distribution/p2site/pom.xmlで、アーティファクト エントリを次のように追加します。

...
<artifact>
  <id>com.google.code.gson:gson:2.1</id>
  <transitive>false</transitive>
  <override>false</override>
</artifact>
<artifact>
  <id>com.jcraft:jsch:0.1.31</id>
  <transitive>false</transitive>
  <override>false</override>
</artifact>
...

commons/opendaylight/pom.xmlで、依存関係エントリを次のように追加します。

...
<dependency>
  <groupId>com.google.code.gson</groupId>
  <artifactId>gson</artifactId>
  <version>2.1</version>
  <scope>compile</scope>
</dependency>
<dependency>
  <groupId>com.jcraft</groupId>
  <artifactId>jsch</artifactId>
  <version>0.1.31</version>
</dependency>
...

完全な OpenDaylight Maven のビルドと実行を行います。それはうまくいくはずです。場合によっては、この依存関係にさらに連鎖した依存関係があり、再度エラーが発生する可能性があります。これらの依存関係を同じ方法でインポートします。

于 2013-11-13T07:24:25.433 に答える