Java Gradle没有建立开机战争
我的Java项目有问题。当我尝试在Windows上的gradle中运行bootWar任务时,它只是第一次生成war。在第二次和以后的时间里,gradle运行,但没有产生战争。如果我重新启动这个想法,它会第一次再次引发战争,然后什么都不会发生。当我在Linux(薄荷19肉桂)上工作时,一切都正常 我尝试了清理任务、重新加载gradle、从Git重新加载项目以及重写gradle文件,但都没有任何帮助 根构建。渐变Java Gradle没有建立开机战争,java,spring-boot,gradle,intellij-idea,Java,Spring Boot,Gradle,Intellij Idea,我的Java项目有问题。当我尝试在Windows上的gradle中运行bootWar任务时,它只是第一次生成war。在第二次和以后的时间里,gradle运行,但没有产生战争。如果我重新启动这个想法,它会第一次再次引发战争,然后什么都不会发生。当我在Linux(薄荷19肉桂)上工作时,一切都正常 我尝试了清理任务、重新加载gradle、从Git重新加载项目以及重写gradle文件,但都没有任何帮助 根构建。渐变 plugins { id 'java' } group 'cz.uhl1k.
plugins {
id 'java'
}
group 'cz.uhl1k.tcs'
version '0.9.5'
repositories {
mavenCentral()
}
plugins {
id 'org.springframework.boot' version '2.3.4.RELEASE'
id 'io.spring.dependency-management' version '1.0.10.RELEASE'
id 'java'
id 'war'
}
group 'cz.uhl1k.tcs'
version '0.9.5'
configurations {
developmentOnly
runtimeClasspath {
extendsFrom developmentOnly
}
}
springBoot {
mainClassName = 'cz.uhl1k.tcs.server.TcsServer'
}
repositories {
mavenCentral()
}
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-web'
implementation 'org.springframework.session:spring-session-core'
developmentOnly 'org.springframework.boot:spring-boot-devtools'
implementation 'org.apache.tomcat.embed:tomcat-embed-jasper'
providedRuntime 'org.springframework.boot:spring-boot-starter-tomcat'
testImplementation('org.springframework.boot:spring-boot-starter-test') {
exclude group: 'org.junit.vintage', module: 'junit-vintage-engine'
}
implementation('org.springframework.boot:spring-boot-starter-data-jpa')
compile 'org.springframework.session:spring-session-core'
implementation('org.postgresql:postgresql:9.4-1206-jdbc42')
compileOnly('org.projectlombok:lombok')
}
子项目构建。梯度
plugins {
id 'java'
}
group 'cz.uhl1k.tcs'
version '0.9.5'
repositories {
mavenCentral()
}
plugins {
id 'org.springframework.boot' version '2.3.4.RELEASE'
id 'io.spring.dependency-management' version '1.0.10.RELEASE'
id 'java'
id 'war'
}
group 'cz.uhl1k.tcs'
version '0.9.5'
configurations {
developmentOnly
runtimeClasspath {
extendsFrom developmentOnly
}
}
springBoot {
mainClassName = 'cz.uhl1k.tcs.server.TcsServer'
}
repositories {
mavenCentral()
}
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-web'
implementation 'org.springframework.session:spring-session-core'
developmentOnly 'org.springframework.boot:spring-boot-devtools'
implementation 'org.apache.tomcat.embed:tomcat-embed-jasper'
providedRuntime 'org.springframework.boot:spring-boot-starter-tomcat'
testImplementation('org.springframework.boot:spring-boot-starter-test') {
exclude group: 'org.junit.vintage', module: 'junit-vintage-engine'
}
implementation('org.springframework.boot:spring-boot-starter-data-jpa')
compile 'org.springframework.session:spring-session-core'
implementation('org.postgresql:postgresql:9.4-1206-jdbc42')
compileOnly('org.projectlombok:lombok')
}
谢谢你的帮助
---编辑---
我试着从Idea nad控制台运行,得到了相同的结果。以下是生成的渐变输出:
12:10:20: Executing task 'bootWar'...
> Task :server:compileJava UP-TO-DATE
> Task :server:processResources NO-SOURCE
> Task :server:classes UP-TO-DATE
> Task :server:bootWar UP-TO-DATE
Deprecated Gradle features were used in this build, making it incompatible with Gradle 7.0.
Use '--warning-mode all' to show the individual deprecation warnings.
See https://docs.gradle.org/6.5/userguide/command_line_interface.html#sec:command_line_warnings
BUILD SUCCESSFUL in 2s
2 actionable tasks: 2 up-to-date
12:10:24: Task execution finished 'bootWar'.
您是否尝试过直接从shell运行gradle,从而不涉及IntelliJ插件?如果这是预期的,那么很可能是插件的问题。同样在这种情况下,提供构建生成的输出也是非常相关的。你应该把它编辑成问题。我在问题中添加了gradle输出,尝试了cosnole和intelliJ“任务:服务器:bootWar-UP-DATE”-我读到“我没有重新创建战争,因为没有任何改变”,你说的“gradle第二次和以后运行但没有生成战争”是什么意思?bootWar任务是最新的,因此不需要再次生成它。这是默认的渐变行为-如果输出相同(缓存),它可以避免再次执行任务。这才是真正的问题。很明显,问题不在于war没有重建,很明显,在标准构建过程确定war不需要更新后,war被删除。您是否尝试直接从shell运行gradle,以便不涉及IntelliJ插件?如果这是预期的,那么很可能是插件的问题。同样在这种情况下,提供构建生成的输出也是非常相关的。你应该把它编辑成问题。我在问题中添加了gradle输出,尝试了cosnole和intelliJ“任务:服务器:bootWar-UP-DATE”-我读到“我没有重新创建战争,因为没有任何改变”,你说的“gradle第二次和以后运行但没有生成战争”是什么意思?bootWar任务是最新的,因此不需要再次生成它。这是默认的渐变行为-如果输出相同(缓存),它可以避免再次执行任务。这才是真正的问题。显然,问题不在于war没有重建,而是在标准构建过程决定它不需要更新之后,它被删除了。