我正在尝试使用 gradle 构建一个 fat jar,但每次我都会得到该程序的非常旧的版本。直接在 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
最佳答案
嗯,我发现了这个问题,它是多种因素综合作用的结果。实际上唯一过时的是表单用户界面。原因是 IntelliJ 开始使用二进制类文件作为表单而不是 java 源文件。
要修复它,请转到设置,然后转到编辑器,再转到 GUI 设计器。按 Java 源代码而不是二进制类文件。重新生成设计(可能必须删除生成的代码并再次运行)。然后用 gradle 构建它,现在应该可以工作了。
关于java - Gradle 构建旧版本代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50125347/