android - 使用 Gradle 和 Android Studio 将所有模块 Artifact 安装到自定义 Maven 存储库

标签 android maven android-studio gradle android-gradle-plugin

我有一个在我的 Android 项目中使用的纯 Java 库,我正在尝试配置它,以便当我运行“gradle install”时,它将构建整个项目并将所有 Artifact 安装到自定义本地存储库中显然是一个 git 存储库。

这是模块 gradle 文件,项目构建良好:

group 'com.packagenaem'
def artifact = 'artifactname'
version '1.0.0'
apply plugin: 'java'

def MAVEN_LOCAL_PATH = 'file:///some/path/to/my/repo'

uploadArchives {
    repositories {
        apply plugin: 'maven'
        mavenInstaller {
            repository(url: MAVEN_LOCAL_PATH)
            pom.groupId = group
            pom.artifactId = artifact
            pom.version = version
            pom.packaging = 'jar'
        }
    }
}

task sourcesJar(type: Jar, dependsOn:classes) {
    classifier = 'sources'
    from sourceSets.main.allSource
}

task javadocJar(type: Jar, dependsOn:javadoc) {
    classifier = 'javadoc'
    from javadoc.destinationDir
}

artifacts {
    archives sourcesJar
    archives javadocJar
}

我从命令行运行时得到的错误是:

Could not find method repository() for arguments [{url=file:///some/path/to/my/repo}] on repository container

如果我省略这一行 repository(url: MAVEN_LOCAL_PATH) 那么它会将所有 Artifact 很好地安装到/users/$USER/.m2/repository

===更新===

在执行以下 gradle uploadArchive 时稍微玩了一下之后,我遇到了以下错误:

Failed to deploy artifacts/metadata: No connector available to access repository remote (/some/path/to/my/custom/repo) of type default using the available factories WagonRepositoryConnectorFactory

==== 稍微扩展一下这个问题 ====

既然我已经为这个问题设置了赏金,让我们扩展它并询问我如何制作它以便我将在我的项目 gradle 文件中编写一次以上代码并在“gradle uploadArchives”上部署所有项目的 Artifact ?目前我已经将所有代码复制到我拥有的所有构建 gradle 文件中,我讨厌这种解决方案......

最佳答案

好吧,所以我在这个上浪费了很多时间和脑细胞......

而不是声明:

repository(url: file("/some/path/to/my/custom/repo"))

将其更改为:

repository url: 'file://' + new File("/some/path/to/my/custom/repo").absolutePath

我不知道为什么,但现在我尝试的每个配置都有效...

关于android - 使用 Gradle 和 Android Studio 将所有模块 Artifact 安装到自定义 Maven 存储库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31736237/

相关文章:

android - 使用 ViewPager 的带有图标的选项卡,如何布局它们?通过附加一些布局文件

更新到构建工具 19.1.0 后的 Android Studio

java - 在Android上单击手机硬件后退按钮时从未调用过onResume?

Android 在 java 文件中添加 Textview,而不是 XML

android - Dagger 在单独的 gradle 模块中

eclipse - m2eclipse:将现有 Maven 项目导入 Eclipse 时将组 id 添加到项目名称

java - 如何从默认的中央 Maven 和其他公共(public)存储库下载 Maven jar 及其依赖项?

maven - Tomcat 在 netbeans 中两次部署相同的应用程序

java - android studio ExpandableListAdapter 上下文错误

android - 如何从 github 存储库中的子目录创建 Android Studio 项目