#navi_header|Groovy| - SpringSource/eclipse-integration-gradle -- https://github.com/SpringSource/eclipse-integration-gradle おおよその動作確認環境: JDK 1.7 Eclipse 4.2 Juno SR2 Gradle IDE(=eclipse-integration-gradle) 3.1.0.xxxxx 使用時の細かいメモ。 ** Gradleプロジェクトをインポートするときのソースフォルダ・出力フォルダについて - Gradleプロジェクトをインポートすると出力フォルダが"bin/"になる。 -- 必要に応じてプロジェクトのプロパティから "Java Build Path" にてカスタマイズする。(".classpath"も目で見て確認しつつ) -- カスタマイズする場合は "Allow output folders for source folders" にチェックを入れるのを忘れずに。このチェックが入ってないと、ソースフォルダ毎の"Output folder"設定は無視され、まとめて "Default output folder:"に指定したフォルダに出力されてしまう。 - "resources" はソースフォルダに登録されない。 -- こちらも "Java Build Path" にて手動でソースフォルダとして登録する。 -- この時、"resources"のソースフォルダの"Excluded"に"**"を指定しておく。これを指定しないと、例えばlogback.groovyを実行時用とテスト用とで "src/main/resources/logback.groovy" と "src/test/resources/logback.groovy" に分けて配置していた場合、"logback.groovy" という名前が重複しているためEclipse側でビルドエラーになってしまう。 --- エラー・メッセージ例 : "Groovy:Invalid duplicate class definition of class logback : The sources .../src/test/resources/logback.groovy and .../src/main/resources/logback.groovy are containing both a class of the name logback." --- "Excluded"に"**"を指定することでリソースファイルについてはEclipse側でコンパイル対象外となるため、".groovy"がコンパイルされることも無くなり、よって、衝突も起きない。 ** 本家Issue Trackerに登録されてる、ちょっと気になるIssue - [#STS-2421] STs-Gradle should preserve already configured output folders - SpringSource Issue Tracker -- https://issuetracker.springsource.com/browse/STS-2421 --- 上でも書いてますが、出力フォルダの調整について、もうちょっとナントカならんのか、という話が挙がってます。 - [#STS-3057] Do not add Groovy Libraries to buildpath - SpringSource Issue Tracker -- https://issuetracker.springsource.com/browse/STS-3057 --- インポートするときにGroovyライブラリをビルドパスに加えるの止めてくんない?という話。"afterEclipseImport"というタスクを定義して、インポート直後におそらく".classpath"のエントリをGradleで調整して回避する方法が掲載されています。これはこれで勉強になりますが、やっぱりある程度は手動調整の必要があるのかもしれません。 - [#STS-2366] jar dependencies in war projects doubly declared in deployment assembly - SpringSource Issue Tracker -- https://issuetracker.springsource.com/browse/STS-2366 --- なんかwarファイル作成すると依存jarが重複して登録されてない?という話。(これ、自分もどっかで見たような気が・・・) --- ちょっと読み切れてないのですが、なんだかややこしそうな話が書かれてるっぽい・・・。 他にも、未解決のIssueは以下で見れます。マルチプロジェクト構成だったり、依存関係が複雑だったりすると色々トラブルが発生しているようです。Eclipse WTPとの連携もまだまだこれからでしょうね・・・。MavenのEclipseプラグインであるm2eがようやくm2e-wtpとしてKeplerで安定してきたばかりですし・・・。 - https://issuetracker.springsource.com/issues/?jql=project%20%3D%20STS%20AND%20resolution%20%3D%20Unresolved%20AND%20component%20%3D%20GRADLE%20ORDER%20BY%20priority%20DESC ** プラグインアップデート時の謎のエラー スクリーンショットとか取ってないので分かりづらいんですが、最初Gradle IDEの3.1.0.xxxxxxを入れました。他にもSpringのGGTSとか入れてましたので、その辺りで何かおかしくなったと思うんですが、"Help" -> "About Eclipse" -> "Installation Details" で見ると、なぜか Gradle IDE Gradle Tooling API Gradle Tooling API というように、"Gradle Tooling API"が2つ、しかも一方は"Gradle IDE"の下に、もう一方はトップレベルに入ってるんです。バージョン番号は一緒。 で、この状態でアップデートしようとすると #pre||> Cannot complete the install because of a conflicting dependency. Software being installed: Gradle IDE 3.3.0.201307040643-RELEASE (org.springsource.ide.eclipse.gradle.feature.feature.group 3.3.0.201307040643-RELEASE) Software currently installed: Gradle Tooling Api 3.1.0.201210040512-RELEASE (org.gradle.toolingapi.feature.feature.group 3.1.0.201210040512-RELEASE) Only one of the following can be installed at once: SpringSource Tool Suite Gradle Integration (Core) 3.3.0.201307040643-RELEASE (org.springsource.ide.eclipse.gradle.core 3.3.0.201307040643-RELEASE) SpringSource Tool Suite Gradle Integration (Core) 3.1.0.201210040512-RELEASE (org.springsource.ide.eclipse.gradle.core 3.1.0.201210040512-RELEASE) Cannot satisfy dependency: From: Gradle Tooling Api 3.1.0.201210040512-RELEASE (org.gradle.toolingapi.feature.feature.group 3.1.0.201210040512-RELEASE) To: org.springsource.ide.eclipse.gradle.core [3.1.0.201210040512-RELEASE] Cannot satisfy dependency: From: Gradle IDE 3.3.0.201307040643-RELEASE (org.springsource.ide.eclipse.gradle.feature.feature.group 3.3.0.201307040643-RELEASE) To: org.springsource.ide.eclipse.gradle.core [3.3.0.201307040643-RELEASE] ||< というエラーになるんですね。多分Gradle Tooling APIが2つあるために依存関係がおかしくなってると思うのですが・・・。 試しにトップレベルの"Gradle Tooling API"をアンインストールして、その後、"Gradle IDE"をアップデートしたら成功しました。 ただ、"Gradle IDE"を3.3にアップデートしたら"Gradle Tooling API"が今度は表示されなくなったんですよね・・・。でもGradleプロジェクトは正常に操作できてて・・・謎・・・。 もしかしたら何かの表紙にトラブルになるかもと考えると多少心配ですが、まぁ最悪クリーンインストールすれば良いので考えないでおきます。 Gralde IDEのインストール方法が悪かったんですかね?GGTSでくっついてくるSTS Dashboardから / Market Place から / UpdateSite登録して手動で / のどれか忘れたのですが・・・。(ただ、少なくともUpdate Site手動登録はしてない。) #navi_footer|Groovy|