Gradle maven 插件:uploadArchives 找不到 /tmp/gradle_empty_settings xml

Gradle maven plugin: uploadArchives cannot find /tmp/gradle_empty_settings xml

我的 Android 项目刚刚从 Eclipse 和 Maven 切换到 Android Studio 和 Gradle。

现在我想让我的 Jenkins 服务器构建发布版本并将其上传到我自己托管的 Nexus 服务器。

为此,我将这些行添加到我的 build.gradle

apply plugin: 'maven'

group = "de.myapp"
version = '2.2.0'

android {
    ...
}

uploadArchives {
    repositories {
        mavenDeployer {
            maven {
                name "snapshot_repo"
                url "http://192.168.178.85:8081/nexus/content/repositories/myapp_snapshots"

                credentials {
                    username  "admin"
                    password  "admin123"
                }
            }
        }
    }
}

构建过程运行良好,但我无法将任何项目上传到 Nexus 服务器而不会收到这条奇怪的消息:

:myapp_testname:assembleDebug :myapp_testname:uploadArchives Upload http://192.168.178.85:8081/nexus/content/repositories/myapp_snapshots/de/myapp/myapp_testname/2.2.0/ivy-2.2.0.xml Upload http://192.168.178.85:8081/nexus/content/repositories/myapp_snapshots/de/myapp/myapp_testname/2.2.0/ivy-2.2.0.xml.sha1 [ant:null] Error reading settings file '/tmp/gradle_empty_settings56173630026020664.xml' - ignoring. Error was: /tmp/gradle_empty_settings56173630026020664.xml (No such file or directory)

BUILD SUCCESSFUL

Total time: 3 mins 31.555 secs Build step 'Invoke Gradle script' changed build result to SUCCESS Archiving artifacts Finished: SUCCESS

我会在存储库中得到两个 ivy 文件,但仅此而已。

似乎gradle 无法创建 tmp 文件。但是不知道为什么。

当我在我的本地 windows 机器上执行这个时,我会得到同样的错误(只是有另一个 tmp 文件夹)

有谁知道如何解决这个问题?

嗯,我刚找到问题和解决方案:

我在我的应用程序中使用了多种风格和构建类型(free/premium 和 debug/release)。 这意味着没有真正的 "default" 变体。 在这种情况下,您需要在模块的 build.gradle 中使用这一行来发布不同的构建类型

android {
    ...
    publishNonDefault true
    ...
}