私はGradleが初めてです。Gradle Project
プロジェクト構成がgradleビルドスクリプトに基づいて再構築されるように、Gradleプラグインを使用してプロジェクトをセットアップしました。eclipse-wtp
アプリを ( Gradle プラグインを使用して) 動的 Web プロジェクトとしてセットアップしようとしていますが、そのためには、プロジェクトが TomcatServer Runtime
ライブラリにアクセスできる必要があります。
どうやらGradleでそれを行う方法は、それを「提供された依存関係」として設定することです。これは、コンパイルにのみ使用され、展開されるべきではありません。ただし、IDE Tomcat のデプロイではうまくいきません。Web App Libraries
Gradle は、提供された依存関係設定を尊重する とGrade Dependencies
、そうでない という 2 つの依存関係セットを構成しているようです。どちらも Web アプリ展開アセンブリに含まれています。つまり、「提供された」Tomcat jar が展開され、Tomcat の起動が妨げられています。
Gradle Dependencies
Eclipse デプロイメント アセンブリ画面に自動的に含まれないように Gradle を構成するにはどうすればよいですか? 次回Gradleが実行されたときに更新されるだけなので、手動で削除することはできません。
私はすでに試しましたRemove Gradle Dependency Management
(プロジェクトを右クリック -> Gradle -> Gradle 依存関係管理の削除) を試しましたが、うまくいきません。Tomcat の問題は解決しますが、テストの依存関係がビルド パス上にないため、単体テストでエラーが発生します。
上記は、手動でも機能する場合に実際に機能しますGradle -> Refresh All
。これにより、Gradle Eclipse プラグインが構成ファイルを再生成し、一部ではない依存関係がWeb App Libraries
に含まれReferenced Libraries
ます。
Gradle -> Remove Dependency Management
ライブラリを削除するだけGrade Dependencies
で、それ自体では十分ではありません。
私は使っている:
- エクリプス ルナ SR1a (4.4.1)
- Gradle IDE プラグイン 3.7.0 ( https://marketplace.eclipse.org/content/gradle-integration-eclipse-0 )
これは問題を引き起こしているライブラリであり、「提供された」Tomcat jar が含まれています。
これは私のbuild.gradleファイルです:
apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'war'
apply plugin: 'eclipse-wtp'
webAppDirName = 'WebContent'
// <snip>
dependencies {
providedCompile('org.apache.tomcat:tomcat-catalina:7.0.34')
// <snip>
}
// snip