【问题标题】:Gradle build using plugins and dependencies from "flatDir"使用“flatDir”中的插件和依赖项构建 Gradle
【发布时间】:2020-05-14 12:20:29
【问题描述】:

如果 flatDir 中存在构建项目所需的所有 jar(插件+依赖项),如何进行 gradle 构建?我的 D 驱动器中的“D:/path/to/local/directory”下有所有必需的 jar。现在,当我尝试进行 gradle 构建时,每次都会由于不同的原因而失败。在修复相同问题时需要帮助(Gradle 版本 6.3)。我的 Build.gradle 中的代码

buildscript {
    repositories {
        // If you want to use a (flat) filesystem directory as a repository
        flatDir {
            dirs 'D:/path/to/local/directory'
        }
    }
}
plugins {
    id "jacoco"
    id 'org.springframework.boot' version '2.2.6.RELEASE'
    id 'io.spring.dependency-management' version '1.0.9.RELEASE'
    id 'java'
    id 'war'
    id "org.sonarqube" version "2.8"
}

dependencies {
    implementation 'org.springframework.boot:spring-boot-starter-web'
    implementation 'org.springframework.boot:spring-boot-starter-web-services'
    implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
    implementation 'wsdl4j:wsdl4j:1.6.3'
    testImplementation 'org.springframework.boot:spring-boot-starter-test'
    testImplementation 'org.springframework.ws:spring-ws-test'
    testImplementation 'org.apache.httpcomponents:httpclient:4.5.9'
    testImplementation 'com.h2database:h2:1.4.199'
}

bootWar {
    baseName = 'web-service'
    version =  '1.0.0'
}

jacocoTestReport {
    reports {
        xml.enabled true
    }
}

sonarqube {
    properties {
        property 'sonar.projectName', 'Sonar-Gradle-Integration'
    }
}

我的 settings.gradle 中的代码

pluginManagement {
    flatDir {
        dirs 'D:/path/to/local/directory'
    }
}

【问题讨论】:

    标签: gradle build.gradle


    【解决方案1】:

    经过一些尝试(Gradle6.3),我发现了如何从平面目录构建项目。您必须拥有 flatDir 存储库中的所有依赖项(以及传递依赖项)。我将所有 jar 保存在我的项目名为“lib”的根文件夹内的单个目录中,并修改了 build.gradle 和 settings.gradle,如下所示:build.gradle

    plugins {
        id "org.sonarqube"
        id "jacoco"
        id 'java'
        id 'war'
    }
    group = 'com.example'
    version = '0.0.1-SNAPSHOT'
    sourceCompatibility = '1.8'
    
    repositories {
        // If you want to use a (flat) filesystem directory as a repository
        flatDir {
            dirs 'lib'
        }
    }
    
    dependencies {
        implementation fileTree(dir: 'lib', include: '*.jar')
        testImplementation fileTree(dir: 'lib', include: '*.jar')
    }
    
    jacocoTestReport {
        reports {
            xml.enabled true
        }
    }
    

    settings.gradle

    pluginManagement {
        buildscript {
            repositories {
                flatDir {
                    dirs 'lib'
                }
            }
            dependencies {
                classpath fileTree(dir: 'lib', include: '*.jar')
            }
        }
    }
    rootProject.name = 'gradleproj'
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-06-01
      • 2021-12-10
      • 2019-08-24
      • 1970-01-01
      • 2013-01-30
      • 2019-07-21
      相关资源
      最近更新 更多