使用Gradle创建Eclipse WTP项目

4

我使用Gradle创建了一个WTP Eclipse项目。

当我运行“gradle eclipse”命令时,它会生成Eclipse项目,但是缺少一个名为“.settings/org.eclipse.core.resources.prefs”的文件。

该文件包含项目字符集的信息。

eclipse.preferences.version=1
encoding/<project>=utf-8

以下是我的Gradle Eclipse插件设置。

eclipse {
classpath {
    downloadSources=true
}

jdt {
    file {
        withProperties { 
            properties -> properties.setProperty("encoding//src/main/java", "utf-8")
                      properties.setProperty("encoding//src/main/resources", "utf-8")
                      properties.setProperty("encoding//src/test/java", "utf-8")
                      properties.setProperty("encoding//src/test/resources", "utf-8")
        }       
    }
}

wtp {
    component {
        contextPath = '/'
    }

    facet {
        facets = facets

        //facet name: 'jst.web', version: '2.5'
        facet name: 'jst.java', version: '6.0'
    }
}

project {
      natures 'com.google.gwt.eclipse.core.gwtNature'
      natures 'org.springframework.ide.eclipse.core.springnature'
      buildCommand 'org.springframework.ide.eclipse.core.springbuilder'
}
  }

我该如何创建这个文件?

请帮忙。

谢谢。

2个回答

5

这个JIRA问题中提到了一个解决方法(由我提出)


eclipseJdt << {
    File f = file('.settings/org.eclipse.core.resources.prefs')
    f.write('eclipse.preferences.version=1\n')
    f.append('encoding/<project>=utf-8')
}

1
对我来说,JB Nizet的解决方案不太适用。当我显式调用“eclipse”任务时,配置文件出现了,但我希望在导入项目后自动生成它。这就是对我起作用的方法:
apply plugin: 'java'
apply plugin: 'eclipse'

compileJava.options.encoding = 'utf-8'

eclipse {
  jdt {
    sourceCompatibility = 1.8
    targetCompatibility = 1.8

    file {
      File dir = file('.settings')
      dir.mkdirs()

      File f = file('.settings/org.eclipse.core.resources.prefs')
      f.write('eclipse.preferences.version=1\n')
      f.append('encoding/<project>=utf-8')
    }
  }
}


cleanEclipse << {
    File f = file('.settings/org.eclipse.core.resources.prefs')
    f.delete()
}

repositories {
    jcenter()
}

dependencies {
    testCompile 'junit:junit:4.12', 'org.hamcrest:hamcrest-all:1.3'
}

我喜欢这个解决方案,但我会添加一个检查org.eclipse.core.resources.prefs是否存在,否则每次“刷新Gradle项目”都会被覆盖,从而删除任何用户设置:if(!f.exists()){f.write ...} - xtian

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接