Импорт стиля кода в Eclipse с помощью Gradle

Ради согласованности стиля кода я хотел бы применить набор правил форматирования и автоматически сохранять действия в своем проекте Eclipse.

Я инкапсулировал эти правила в файле EPF, используя File > Export > Preferences в Eclipse.

Есть ли способ импортировать этот файл EPF в Eclipse с помощью Gradle, чтобы сделать правила эффективными? плагин Eclipse от Gradle имеет атрибут linkedResource, но я не уверен, что это правильный путь.

Любые подсказки очень ценятся.


person Matthias Braun    schedule 01.03.2014    source источник
comment
Не могу напрямую помочь вам с вашим фактическим вопросом (о том, как справиться с этим с помощью gradle), однако я могу предложить взглянуть на code.google.com/a/eclipselabs.org/p/workspacemechanic. Пользуемся уже давно, работает стабильно. Надеюсь, поможет..   -  person roomsg    schedule 03.03.2014


Ответы (1)


Насколько я знаю, в Gradle нет возможности автоматически импортировать эти настройки. Однако я мог бы подумать о том, чтобы создать что-то вручную, предоставив файл defaultJdtPrefs.properties, содержащий все настройки для org.eclipse.jdt.core.prefs. Для создания org.eclipse.jdt.ui.prefs при выполнении gradle eclipse вы можете использовать следующее:

tasks.cleanEclipse.doLast {
    delete("${project.projectDir}/.settings/org.eclipse.jdt.ui.prefs")
}

tasks.eclipse.doLast {
    File saveActionPrefs = file("${project.projectDir}/.settings/org.eclipse.jdt.ui.prefs")
    if (saveActionPrefs.exists()) {
        logger.warn("UI preferences already exist and will not be overridden. Use task 'cleanEclipse' first.")
    } else {
        saveActionPrefs.append('''
             eclipse.preferences.version=1
             <<HERE COMES YOUR CONTENT>>
             '''. stripIndent())
    }
}

С помощью этого решения вы могли бы даже предоставить приведенный выше файл EPF, содержащий ваши настройки, для создания файла org.eclipse.jdt.ui.prefs с использованием любого из встроенных XML-парсеров Groovy ;-)

Я знаю, что это не лучшее решение, потому что вам нужно добавлять эти вещи в каждый проект (или с помощью специального плагина Gradle), хотя это единственное решение, о котором я сейчас могу думать.

person Andreas Schmid    schedule 13.12.2014