2016-10-21 9 views
0

Gradleは、単純なWebアプリケーションを構築し、同じワークスペース内でいくつかのEclipseプロジェクトに分割するために使用されます。 Gradleスクリプトはテストを実行し、展開可能なEARファイルを作成します。 EARファイルはLiberty Profileサーバー上で問題なく実行されます。gradle eclipse依存関係、testCompile/providedRuntimeなどをスキップ

しかし、私はeclipse(gradle pluginを使用)から実行する際に問題があります。問題の根源は自動的に "gradle depencency"管理( "classpass container" org.springsource.ide.eclipse.gradle.classpathcontainerによって注入される依存関係の束)のようです。このことは、compileOnly、testCompile、providedCompileなどのような依存関係を拾っているようです。これは、スタンドアロンビルドに必要なjavax.persistence。javax.injectのようなクラスを持つlibsにつながりますが、アプリケーションサーバによって提供され、 Eclipseの実行時にアプリケーションの一部としてアプリケーションサーバーにデプロイされ、あらゆる種類のエラーや警告が発生します。

gradle eclipseプラグインがデプロイメントの対象となる依存関係をフィルタリングする方法はありますか?

答えて

0

これは、STS gradle toolingに関する長年の問題です。これは、gradle-tooling-apiが 'eclipseクラスパス'用に生成するモデルの提供/テストなどの依存関係を区別しないという事実に由来します。少なくとも、STS gradle toolingが実装されたのはそのケースでした。ツール・アピ・モデルはそれ以来進化してきましたが、STSのグラデーション・ツーリングは段階的に廃止されており、実際の問題を解決することはできません。

このような状況のために具体的に実装された回避策があります。

Window >> Preferences >> Gradle (STS) >> WTPにアクセスしてください。ここにGradle Dependencies Deployment Exclusionsというラベルの正規表現のリストが表示されます。そこに式を追加できます。これらは一種のグローバルフィルタとして機能します。これらの式のいずれかと一致する任意のjarは、WTPデプロイメントアセンブリから除外されます。

これはあなたのために働くかもしれません。

しかし、それは粗い回避策のビットです。

だから... BuildShipこれは、STS Gradle-toolingの公式後継者であることを今has WTP supportと聞いています。したがって、おそらくあなたはBuildShipに切り替えようとします。私は、WTPデプロイメントアセンブリに正しく提供されている、提供されている、テストされているなどの依存関係を扱っていると考えています(BuildShipに対するバグレポートの提出を検討していない場合)。

+0

ありがとう、非常に役に立ちます! (私は十分な評判ポイントを持っていないのであなたのコメントをアップアップすることはできません:() – Kartu

関連する問題