仅在本地使用Gradle组合构建并使用CI / CD

时间:2018-01-22 19:31:13

标签: gradle build.gradle

我在使用Gradle编译后,在无法从Internet访问的内部Artifactory存储库中存储库工件。当我离线或在公司外工作时,我无法访问该存储库。

使用此类库的一个应用程序(“Web应用程序”)已在build.gradle中配置了以下设置:

...
repositories {
    mavenCentral()
    maven {
        url "https://artifactory.company.com"
    }
}
...
dependencies {
    compile(group: 'com.company', name: 'common-lib', version: '1.0.+', changing: true) 
}
...
dependencyManagement {
    }
    resolutionStrategy {
        cacheChangingModulesFor 0, 'seconds'
        cacheDynamicVersionsFor 0, 'seconds'
    }
}

这适用于CI / CD以及我在办公室时。它确保使用最新的错误修复 -version库,因此,当错误修复计数器出现问题时,不必每个项目都要触及。

要离线工作,我遇到了Gradle的复合构建功能:https://docs.gradle.org/current/userguide/composite_builds.html

这样,我可以在本地检出代码并添加这些设置:

网络的应用/ settings.gradle

rootProject.name='web-application'
includeBuild '../common-lib'

共LIB / settings.gradle

rootProject.name='common-lib'

此外,我必须删除web-application/build.gradle中的依赖项:

dependencies {
    /* compile(group: 'com.company', name: 'common-lib', version: '1.0.+', changing: true) */
}

最后,IntelliJ IDEA询问我是否要添加对模块common-lib的依赖,我接受。这工作正常,但是再次,我无法在build.gradle中提交更改,因为这会破坏依赖于签入库的CI / CD管道。

使这两种方案都有效的正确方法是什么?

0 个答案:

没有答案