Gradle сборка старой версии кода - PullRequest
0 голосов
/ 02 мая 2018

Я пытаюсь построить толстую банку с 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
}

settings.gradle

rootProject.name = 'example'

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

Команда

 ./gradlew fatjar

1 Ответ

0 голосов
/ 05 мая 2018

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

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

...