Gradle создает старую версию кода

Я пытаюсь создать толстую банку с помощью Gradle, но каждый раз, когда я это делаю, я получаю очень старую версию программы. Запуск программы из main непосредственно в IntelliJ работает нормально, поэтому что-то с самой сборкой gradle не работает. Когда я проверяю банку в (путь проекта)/build/libs, дата и время файла изменились, поэтому он действительно был построен, но когда я запускаю его, я получаю сборку месячной давности. Я подозреваю, что это может быть вызвано каким-то кешем, но я не знаю, где он находится.

build.gradle

version '1.0.2'

apply plugin: 'java'

repositories {
    mavenCentral()
}

task fatJar(type: Jar) {
    manifest {
        attributes 'Implementation-Title': 'Example',
                'Implementation-Version': version,
                'Main-Class': 'com.example.Main'
    }
    baseName = project.name
    from { configurations.compile.collect { it.isDirectory() ? it : zipTree(it) } }
    with jar
}

jar {
    manifest {
        attributes(
                'Main-Class': 'com.example.Main',
        )
    }
}

dependencies {
    compile 'com.intellij:forms_rt:6.0.5'
    compile project(':common')
    testCompile group: 'junit', name: 'junit', version: '4.11'

    sourceCompatibility = 1.7
    targetCompatibility = 1.7
}

настройки .градле

rootProject.name = 'example'

include ':common'
project(':common').projectDir = new File(settingsDir, '../common')

Команда

 ./gradlew fatjar

person Frozendragon    schedule 01.05.2018    source источник
comment
Даже с задачей clean?   -  person ToYonos    schedule 02.05.2018
comment
Да, я пробовал как очистить, так и удалить все файлы tmp вручную. Либо сработало.   -  person Frozendragon    schedule 02.05.2018


Ответы (1)


Ну, я обнаружил проблему, и это была комбинация вещей. Единственное, что на самом деле устарело, — это форма ui. Причиной этого было то, что IntelliJ начал использовать двоичные файлы классов для форм вместо исходных файлов Java.

Чтобы исправить это, перейдите в настройки, затем в редактор, а затем в дизайнер графического интерфейса. Нажмите исходный код Java вместо двоичных файлов классов. Восстановите дизайн (возможно, придется удалить сгенерированный код и запустить его снова). Затем создайте его с помощью Gradle, теперь он должен работать.

person Frozendragon    schedule 04.05.2018