1

我正在尝试用 gradle 构建一个胖罐,但每次我都会得到一个非常旧版本的程序。直接在 IntelliJ 中从 main 运行程序可以正常工作,因此 gradle 构建本身不起作用。当我在(项目路径)/build/libs 中检查 jar 时,文件的日期和时间已更改,因此它确实构建了,但是当我启动它时,我得到了一个月前的构建。我怀疑可能有一些缓存导致了这种情况,但我不知道它在哪里。

构建.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
}

设置.gradle

rootProject.name = 'example'

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

命令

 ./gradlew fatjar
4

1 回答 1

2

好吧,我发现了这个问题,它是多种因素的结合。唯一真正过时的是表单 ui。原因是 IntelliJ 开始对表单使用二进制类文件而不是 java 源文件。

要修复它,请转到设置,然后是编辑器,然后是那个 GUI 设计器。按 Java 源代码而不是二进制类文件。重新生成设计(可能必须删除生成的代码并再次运行)。然后用 gradle 构建它,它现在应该可以工作了。

于 2018-05-04T21:39:36.070 回答