1

Liferay 7 のいくつかの機能を開発しています。まだベータ版であることはわかっていますが、OSGi パッケージの依存関係でいくつかの問題に直面しています。サービス プロジェクトをデプロイしようとすると、デプロイ中にエラーが発生しました

未解決の要件: Import-Package: com.liferay.asset.kernel.model; バージョン="[1.0.0,2.0.0)"

また、expando インポート パッケージのような他のものでも同じことが起こります。

問題は、私の Eclipse Mars にはエラーがなく、依存関係で、Jar com.liferay.portal.kernel 内のクラスを見つけることができ、なぜそのエラーがスローされるのかわかりません。

私のbuild.gradleには、この依存関係があります

「com.liferay.portal:com.liferay.portal.kernel:2.1.0」をコンパイルします

私のbndファイルには次のものが含まれています:

 Bundle-Version: 1.0.0 
Liferay-Service: true
Require-Capability: liferay.extender;filter:="(&(liferay.extender=spring.extender)(version>=1.0)(!(version>=3.0)))"
Liferay-Require-SchemaVersion: 1.0.0
Liferay-Spring-Context: META-INF/spring
-sources: true
Import-Package: \
    com.liferay.portal.service;version="7.0.0",\
    com.liferay.portal.kernel;version='2.1.0',\
    org.osgi.framework;version="[1.7,2)",\
    *

1.0.0 から 2.0.0 に制限されているランタイムの依存関係がどこにあるのか、誰でも知っていますか?

私は多くの時間を失っており、これは本当に初心者なので、どんな助けも大歓迎です。

これで管理していると思いますが、新しい問題が発生します... サービス プロジェクトで buildService を実行すると、すべてのものを作成しますが、問題は SqlUpdateFactoryUtil で間違って作成されることです。指定されたパラメーターは 7.0 の API と同じではないため、スローされるエラーは次のとおりです。

SqlUpdate sqlUpdate = SqlUpdateFactoryUtil.getSqlUpdate(dataSource,
                                                      ^
  required: DataSource,String,int[]
  found: DataSource,String
  reason: actual and formal argument lists differ in length

したがって、サービスビルダープラグインは私のjarのバージョンと同期していないと思います

4

3 に答える 3

1

自分自身と同じ問題に直面しているすべての人のために返信します。

ポイントは問題の組み合わせです。

  • Elipse Mars は Jars の依存関係を自動的に更新しません。オプション「Gradle --> Refresh Gradle Project」を使用する必要があります。
  • 依存関係の不適切な使用。私は初心者なので、間違った依存関係を使用してカーネルをインポートしようとしましたが、ポータル サービス 7.0.0 で十分です。

これで、3 つのプロジェクト (サービス、API、および Web) がすべて正しくデプロイされ、アクティブになりました。

現在、複数の MVCPortlet クラスを同じ保護に含めようとする他の問題に直面しています。しかし、これは別の戦争です。

于 2016-03-26T10:58:02.377 に答える
0

アーティファクトのバージョン 2.1.0 を使用していますcom.liferay.portal:com.liferay.portal.kernel

ただし、誰かがバージョン [1.0.0, 2.0.0) でこのアーティファクトのランタイム依存関係を宣言しています: 1 以上で厳密に 2 未満です。2.1 は 2 より大きいため、このバージョンは解決できません。

マニフェストをチェックしてこの依存関係を修正するか、ツール (bnd として) を使用してこのマニフェストを生成する必要があります。

于 2016-03-25T15:17:02.100 に答える