假设我有1个库,供Gradle
构建的2个应用使用。如何才能独立于应用程序(文件系统中的完全不同的文件夹)独立编辑/编译库,但能够使用库来编译应用程序?
问题是默认情况下,库和应用程序应位于同一项目目录中:
project
|--library
L--app
因此应用程序的
build.gradle
文件如下所示:compile(project(":library"))
这是一个问题,因为它需要将库文件存储在与应用程序文件夹相同的文件夹中,并且由于我们有2个应用程序,因此无法实现。
我有
Maven
的经验,并通过以下方式解决了问题: Artifact 保存在本地Maven存储中,并且可以从应用程序中引用,因此文件系统中的位置无关紧要。 Gradle
的类似解决方案?PS。这是以下问题:如果我想使用任何第三方库,是否必须将其克隆到项目文件夹中并使用
compile project ':library'
进行引用?有什么方法可以将其克隆到完全独立的文件系统位置并仅通过“groupId + artifactId + version”进行引用?
最佳答案
您可以通过以下方法实现:
您将在库的
build.gradle
中添加apply plugin: 'maven-publish'
并通过执行
gradle publishToMavenLocal
在应用程序中的
repositories {
mavenLocal()
}
dependencies {
config "yourArtifactGAV"
}
在应用程序目录中的
settings.gradle
文件:include $yourLibName
def p = findProject(":$yourLibName")
p.projectDir = new File(settingsDir, absolutePathToYourLibraryDir)
dependencies {
config project(':$yourLibName')
}
关于maven - Gradle的 “local repository”与Maven相似吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38939723/