当前位置: 首页 > 知识库问答 >
问题:

如何删除依赖项和存储库的重复定义?

闾丘永春
2023-03-14

我有一个构建脚本,它具有存储库和依赖项的重复:

apply plugin: 'groovy'

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'org.codehaus.groovy:groovy-all:2.0.5'
        classpath 'org.apache.knox:gateway-shell:0.6.0'
        classpath 'commons-io:commons-io:2.4'
    }
}

repositories {
    mavenCentral()
}

dependencies {
    compile 'org.codehaus.groovy:groovy-all:2.0.5'
    compile 'org.apache.knox:gateway-shell:0.6.0'
    compile 'commons-io:commons-io:2.4'
}

如果注释掉这两个部分中的任何一个,我都会收到生成错误。是否有一种方法可以使用存储库和依赖项的单一定义?

注意:构建脚本的其余部分...

task wrapper(type: Wrapper) {
    gradleVersion = '2.9'
}

sourceSets {
    main {
        groovy {
            srcDirs = ['scripts']
        }
    }
}

/* Task to run script */
tasks.addRule("Pattern: filename.groovy") { String taskName ->

    if (taskName.endsWith('.groovy')) {
        FileTree tree = fileTree('./scripts/').include('**/*.groovy')
        tree.each {File file ->
            if (file.absolutePath.endsWith(taskName)) {

                task(taskName, dependsOn:'classes', type: JavaExec) {

                    Properties props = new Properties()
                    props.load(new FileInputStream("$projectDir/connection.properties"))

                    environment 'gateway', props.gateway
                    environment 'username', props.username
                    environment 'password', props.password

                    // the classname is the scriptname minus the extension
                    main = org.apache.commons.io.FilenameUtils.getBaseName(taskName)
                    classpath = sourceSets.main.runtimeClasspath
                }
            }
        }
    }
}

共有1个答案

钱锦
2023-03-14

如果您有一个多模块项目,您可以添加到根gradle buildscript

allprojects {
    repositories {
        jcenter() or mavenCentral()
    }
}
 类似资料:
  • 我想使用nd4j-cuda-10.2中的项目。它有两个操作系统(Linux和Windows)的jar文件。在使用windows系统时,如何将jar从Linux中排除,反之亦然?。 [Maven Repository][1][1]:https://repo1.maven.org/maven2/org/nd4j/nd4j-cuda-10.2/1.0.0-beta7/ 由于jar文件的重量。我想排除对每

  • 我正在为我的项目使用Gradle,昨天我在构建项目时遇到了问题,因为https://plugins.gradle.org不起作用。那么有没有办法克隆依赖项

  • 我所处的环境是,可以将同名jar文件的多个版本发布到本地Nexus安装。这些jar文件始终命名为XYZ-SNAPSHOT。罐子我们的持续集成系统需要始终获取最新版本,因此我们的自动构建当前包含以下内容,以消除持续集成机器上的完整本地回购: mvn依赖项:清除本地存储库 这将强制在每个构建上下载所有依赖项,这将花费很长时间。是否有某种方法可以将“includes”标志与通配符一起使用。我可以这样假设

  • 我尝试只删除 1 个项目,或者当我使用打开的库存单击它时保留项目堆栈,但是,方法:,删除库存中的所有类似项目,如何只删除 1 个项目,或 1 ?

  • 像这样的问题有很多,但是似乎没有一个对我有效或者直接回答我的问题。 我正在使用Jhipster和MongoDB Atlas。Jhipster使用一个名为Mongobee的库,其中使用了一个适用于MongoDB的方法,但不适用于MongoDB Atlas。要启动,Mongobee似乎不再维护。 因此,我找到了某人的建议PR,他们将其发送给Mongobee进行审查,我接受了代码更改,将MongoBe分

  • 我正在使用gradle构建我的项目,但gradle仅将工件复制到本地maven存储库,而不是所有依赖项。我需要的是将工件及其所有依赖项复制到本地maven存储库中。 请建议在gradle做这件事的方法。我尝试了gradle的文档,但没有成功。