【问题标题】:Why the gradle war task is skipped?为什么跳过 gradle war 任务?
【发布时间】:2018-01-09 02:42:12
【问题描述】:

我是一个新的 gradle 转换者。大多数任务工作正常。但是我看到战争任务总是被跳过。当我在调试模式下运行时,我看到以下日志 -

09:12:34.889 [生命周期] [类 org.gradle.internal.buildevents.TaskExecutionLogger]:战争 09:12:34.889 [调试] [org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter] 开始执行任务 ':war' 09:12:34.889 [INFO] [org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter] 跳过任务 ':war' 作为任务 onlyIf 为假。 09:12:34.889 [DEBUG] [org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter] 完成执行任务 ':war' 09:12:34.889 [LIFECYCLE] [class org.gradle.internal.buildevents.TaskExecutionLogger] :war 跳过

我不确定为什么 onlyIf 是假的。我确实在互联网上搜索过。但是我没有找到任何相关的东西。

这是我的 gradle 文件 -

buildscript {
    ext {
        springBootVersion = '2.0.0.M2'
    }
    repositories {
        mavenCentral()
        maven { url "https://repo.spring.io/snapshot" }
        maven { url "https://repo.spring.io/milestone" }
    }
    dependencies {
        classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
    }
}

// Apply the java-library plugin to add support for Java Library
apply plugin: 'java-library'
apply plugin: 'eclipse'
apply plugin: 'org.springframework.boot'
apply plugin: 'io.spring.dependency-management'
apply plugin: 'war'
apply plugin: 'checkstyle'
apply plugin: 'pmd'
apply plugin: 'findbugs'
apply plugin: 'jacoco'

version = '0.0.1-SNAPSHOT'
sourceCompatibility = 1.8

repositories {
    jcenter()
    mavenCentral()
    maven { url "https://repo.spring.io/snapshot" }
    maven { url "https://repo.spring.io/milestone" }
}

dependencies {

    compile('org.springframework.boot:spring-boot-starter')
    compile("org.springframework.boot:spring-boot-starter-web")
    compile("org.springframework.retry:spring-retry:1.2.1.RELEASE")

    compile("org.springframework.data:spring-data-cassandra:2.0.0.M4")

    compile("io.reactivex.rxjava2:rxjava:2.1.1")

    //compile("javax.persistence:persistence-api:1.0.2")
    //compile("org.hibernate.javax.persistence:hibernate-jpa-2.0-api:1.0.1.Final")
    compile("org.springframework.boot:spring-boot-starter-data-jpa")
    compile("com.zaxxer:HikariCP:2.6.0")

    // Test Dependencies
    testCompile("org.springframework.boot:spring-boot-starter-test")
    testCompile("org.powermock:powermock-mockito-release-full:1.6.4")
    testCompile("org.mockito:mockito-core:2.0.3-beta")
    testCompile("org.cassandraunit:cassandra-unit:3.1.3.2")
    testCompile("org.cassandraunit:cassandra-unit-spring:2.2.2.1")
    testCompile("com.h2database:h2:1.4.196")

    // This dependency is exported to consumers, that is to say found on their compile classpath.
    api 'org.apache.commons:commons-math3:3.6.1'

    // This dependency is used internally, and not exposed to consumers on their own compile classpath.
    implementation 'com.google.guava:guava:21.0'

    testImplementation 'junit:junit:4.12'
}

这是我的项目结构图-

如果你能帮我生成战争文件,那就太好了。

【问题讨论】:

  • 您的项目结构可能无效,例如web.xml 没有放在应有的位置。
  • 我把它改成了标准的项目结构——src.main/webapp,然后是里面的WEB-INF文件夹。 web.xml 位于 WEB-INF 文件夹中。然而,任务还是被跳过了!

标签: android maven gradle build.gradle gradlew


【解决方案1】:

试试看

war {
    enabled = true
}

【讨论】:

  • 非常感谢!!!我对 gradle 完全陌生(我来自 ant 和 maven),这对我来说似乎很荒谬......
【解决方案2】:

我也遇到了与 jar 任务相同的问题,它会跳过 jar 生成,因为如果您不指定任何外部值,它会采用默认值 enabled=false。 基于@Alexander Servetnik
Enrironment:,同样的解决方案也适用于 jar SpringBoot 2.x 和 毕业 4.4

jar {
    baseName = <your-jar name>
    enabled=true
}

【讨论】:

  • 在将 Spring Boot 从 1.x 升级到 2.x 后,在 java web 应用程序上遇到了同样的问题。依赖 Gradle 项目无法编译,因为 JAR 任务没有产生任何东西。这个解决方案对我有用。
  • 在 spring-boot 2 升级中也遇到了这个奇怪的问题。
  • 只花了一个小时来找出为什么项目 A(启动 1.5.x)正在构建一个 jar 而项目 B(启动 2.x)不是。 ?
  • 即使显式运行./gradlew war 任务也会跳过war 文件的创建!似乎反直觉。在 build.gradle 中设置 war {enabled=true} 可以解决此问题。
  • 可能是因为使用 Spring Boot 你应该使用 bootJar 任务
【解决方案3】:

尝试升级gradle版本

Spring Boot 的 Gradle 插件需要 Gradle 6(6.3 或更高版本)。 Gradle 5.6 也受支持,但此支持已被弃用,将在未来版本中删除。

https://docs.spring.io/spring-boot/docs/current/gradle-plugin/reference/html/

【讨论】:

    猜你喜欢
    • 2019-03-27
    • 1970-01-01
    • 2014-12-25
    • 2023-03-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-26
    • 1970-01-01
    相关资源
    最近更新 更多