Gradle 构建旧版本的代码
Gradle building old version of code
我正在尝试用 gradle 构建一个 fat jar,但每次我这样做时,我都会得到一个非常旧的程序版本。 运行 直接在 IntelliJ 中来自 main 的程序运行良好,因此 gradle 构建本身无法运行。当我在(项目路径)/build/libs 中检查 jar 时,文件的日期和时间已更改,因此它确实构建了,但是当我启动它时,我得到了一个月前的构建。我怀疑可能是某些缓存导致了这种情况,但我不知道它位于何处。
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
好吧,我发现了问题,它是多种因素的结合。唯一实际过时的是 ui 形式。这样做的原因是 IntelliJ 开始为表单使用二进制 class 文件而不是 java 源文件。
要修复它,请转到设置,然后是编辑器,然后是 GUI 设计器。按 Java 源代码而不是二进制 class 文件。重新生成设计(可能必须删除生成的代码并再次运行)。然后 bui 用 gradle 加载它,它现在应该可以工作了。
我正在尝试用 gradle 构建一个 fat jar,但每次我这样做时,我都会得到一个非常旧的程序版本。 运行 直接在 IntelliJ 中来自 main 的程序运行良好,因此 gradle 构建本身无法运行。当我在(项目路径)/build/libs 中检查 jar 时,文件的日期和时间已更改,因此它确实构建了,但是当我启动它时,我得到了一个月前的构建。我怀疑可能是某些缓存导致了这种情况,但我不知道它位于何处。
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
好吧,我发现了问题,它是多种因素的结合。唯一实际过时的是 ui 形式。这样做的原因是 IntelliJ 开始为表单使用二进制 class 文件而不是 java 源文件。
要修复它,请转到设置,然后是编辑器,然后是 GUI 设计器。按 Java 源代码而不是二进制 class 文件。重新生成设计(可能必须删除生成的代码并再次运行)。然后 bui 用 gradle 加载它,它现在应该可以工作了。