plugins { id 'eclipse' } // Workaround from https://github.com/gradle/gradle/issues/898#issuecomment-885765821 def eclipseResourceEncoding = tasks.register('eclipseResourceEncoding') { ext.outputFile = file('.settings/org.eclipse.core.resources.prefs') def compileTask = tasks.findByName('compileJava') ext.encoding = provider({ compileTask?.options?.encoding }).orElse(providers.systemProperty('file.encoding')) inputs.property('file.encoding', encoding) outputs.file(outputFile).withPropertyName('outputFile') doLast { Properties eclipseEncodingProperties = new Properties(Collections.singletonMap('eclipse.preferences.version', '1')) eclipseEncodingProperties.put('encoding/', encoding.get()) outputFile.withOutputStream { eclipseEncodingProperties.store(it, 'generated by ' + name) } } } tasks.named('eclipse') { dependsOn(eclipseResourceEncoding) } eclipse.synchronizationTasks(eclipseResourceEncoding)