2016-03-25 13 views
1

私はLiferay 7のいくつかの機能を開発しています。私はまだベータ版ですが、私はOSGiパッケージの依存関係にいくつかの問題に直面しています。サービスプロジェクトを展開しようとすると、展開中にエラーが発生しました。Liferay 7サービスモジュール未解決の要求者

未解決の要件:インポートパッケージ: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のようにスローされたエラーは次のとおりです。

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

だから私は、サービスビルダプラグインは私のjarファイルのバージョン

答えて

0

あなたがアーティファクトcom.liferay.portal:com.liferay.portal.kernelのバージョン2.1.0を使用していると同期されていないことを推測します。

ただし、バージョン[1.0.0、2.0.0]でこの成果物にランタイム依存関係を宣言している人:1以上、厳密に2未満です。このバージョンは解決できません

この依存関係を修正するには、マニフェストを確認するか、ツール(bndなど)を使用してこのマニフェストを生成する必要があります。

+0

返信ありがとうございます...私はどこを見るかわかりません。私は私のbndファイルの内容を追加します。私はgogoシェルを持っていますが、依存関係などを更新する場所はわかりません。 – Miguel

1

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

ポイントは複数の問題があります。

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

私の3つのプロジェクト(service、api、web)はすべて正しくデプロイされ、アクティブになっています。

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