这里是Java 8和Gradle 4.6。我有一个带有以下build.gradle的Spring应用程序
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath("org.springframework.boot:spring-boot-gradle-plugin:1.5.8.RELEASE")
}
}
plugins {
id 'java-library'
id 'checkstyle'
id 'jacoco'
}
apply plugin: 'org.springframework.boot'
repositories {
mavenLocal()
mavenCentral()
jcenter()
}
configurations {
dev
}
dependencies {
compile(
,'ch.qos.logback:logback-classic:1.2.3'
,'org.slf4j:jul-to-slf4j:1.7.25'
,'org.apache.logging.log4j:log4j-to-slf4j:2.9.1'
,'org.apache.commons:commons-lang3:3.7'
,'org.springframework.boot:spring-boot-starter-actuator'
,'org.apache.commons:commons-text:1.2'
,'commons-beanutils:commons-beanutils-core:1.8.3'
)
testCompile(
'junit:junit:4.12'
,'org.mockito:mockito-core:2.23.0'
)
dev('org.springframework.boot:spring-boot-devtools')
}
sourceCompatibility = 1.8
targetCompatibility = 1.8
String buildName = 'myapp'
jar {
baseName = buildName
}
bootRun {
if(project.hasProperty('debugMode')) {
jvmArgs = [ "-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=5005" ]
}
classpath = sourceSets.main.runtimeClasspath + configurations.dev
}
checkstyle {
toolVersion = '8.12'
ignoreFailures = false
}
jacocoTestReport {
reports {
xml.enabled false
html.enabled true
html.destination file("${buildDir}/reports/jacoco/")
}
}
check.dependsOn jacocoTestCoverageVerification
jacocoTestCoverageVerification.dependsOn jacocoTestReport这是一个Spring应用程序,它也使用格子式和雅可科 Gradle插件。
我认为“完整构建”是一种调用,即:
对于当前的Gradle构建文件,我运行一个完整的构建,如下所示:
./gradlew clean build然而,这可能需要几分钟的时间来运行所有的单元测试,并且变得很麻烦。我想介绍一个“快速构建”选项,它只编译代码并为我创建Spring。这将极大地加快开发时间。
我希望像这样调用快速构建:
./gradlew clean quickbuild到目前为止我已经知道了:
tasks.register("quickbuild") {
doLast {
// ???
}
}但是不知道如何将编译和fatjar任务链接到它(更重要的是,跳过我不想要的所有其他东西!)关于我错过了什么有什么想法吗?
更新
bootJar任务似乎不存在或没有配置(请查看上面提供的build.gradle文件!):
$ ./gradlew clean bootJar
FAILURE: Build failed with an exception.
* What went wrong:
Task 'bootJar' not found in root project 'myapp'. Some candidates are: 'bootRun'.
* Try:
Run gradlew tasks to get a list of available tasks. Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.
* Get more help at https://help.gradle.org
BUILD FAILED in 0s当我尝试运行bootRun时
$ ./gradlew clean bootRun它试图真正运行我的应用程序!这不是我想要的!我只想编译和构建胖罐子!
发布于 2019-01-21 16:03:44
参见这里的Java插件的文档:任务
您可以创建一个新任务(quickbuild)并使其依赖于所需的任务(在您的示例中,我猜它可能是assemble生命周期任务,也可能是bootJar任务(对于SpringBoot v2.x)或bootRepackage (对于SpringBoot v1.5.x) )。
tasks.register('quickbuild'){
dependsOn assemble
}但是,如果quickbuild任务的唯一目的是触发Jar的创建,那么最简单的解决方案就是直接执行assemble
./gradlew clean assemblehttps://stackoverflow.com/questions/54293205
复制相似问题