我在使用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管道。
使这两种方案都有效的正确方法是什么?