8
11

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Gradleでeclipseプロジェクト用ファイルを生成するときのTips

Posted at

gradleを使って、eclipseプロジェクトを生成する際にbuild.gradeに追加する設定のTips。自分用。
これらの設定はgradleでeclipseプロジェクトファイルを作った後に、IDE上から設定可能だが、毎回やるのは手間なのでbuild.gradleに入れたいと思っていたもの。

.classpathファイルからパスを抜く

特定のモジュール(具体的にはDynamoDBLocal)をgradleの依存関係に設定してeclipseプロジェクトを作ると、.soや.dllがクラスパスに入ってくるため、eclipseプロジェクトがエラーになる。
この場合、以下のようにして生成されるファイルからパスを除外する。

eclipse.classpath.file {
    whenMerged { classpath ->
        classpath.entries.removeAll { entry -> (entry.path.endsWith('dll') || entry.path.endsWith('so') || entry.path.endsWith('dylib')) }
    }
}

JREのデフォルトアクセスルールに追加をする

特定のパッケージ(具体的にはjavafxやjavax.smartcardio)は、デフォルト状態ではeclipseから見えなくなっており、エラーになる。
この場合、以下のようにしてJREのアクセスルールに追加をする。

eclipse.classpath.file {
    whenMerged {
        def jre_container = entries.find { it.path.contains 'org.eclipse.jdt.launching.JRE_CONTAINER' }
        jre_container.accessRules << new org.gradle.plugins.ide.eclipse.model.AccessRule("accessible", "javax/smartcardio/**")        
    }
}

Project Natureを追加する

特定のProject Nature(具体的にはgradleやSTSのGradleプラグイン)はデフォルトでは設定されない。
この場合、以下のようにしてproject natureを追加する

eclipse.project {
    buildCommand 'org.eclipse.buildship.core.gradleprojectbuilder'
    natures 'org.eclipse.buildship.core.gradleprojectnature'
}

またBuildshipの場合、.settings以下のprefファイルがないとエラーになるので、以下のようにしてファイルを作成する。

tasks.eclipse.doFirst {
	File prefs = file(".settings/org.eclipse.buildship.core.prefs")
	if(!prefs.exists()){
    	prefs.append('''
			connection.project.dir=
			eclipse.preferences.version=1
    		'''.stripIndent())
	}
}

なおこれらの設定は、すでに各種設定ファイルがある場合一見うまくいっているように見えるため、

gradle cleanEclipse eclipse

で一旦eclipseプロジェクトファイルをcleanしたほうが良さそう。

参考にさせていただいたエントリ:

8
11
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
11

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?