发布 artifacts

依赖配置也可以用来发布文件[3]. 我们称这些文件publication artifacts, 或者就叫 artifacts.

插件可以很好的定义一个项目的 artifacts, 所以你并不需要做一些特别的工作来让 Gradle 需要发布什么. 你可以通过在 uploadArchives 任务里加入仓库来完成. 下面是一个发布远程 Ivy 库的例子:

例子 8.8. 发布一个 Ivy 库

build.gradle

uploadArchives {
    repositories {
        ivy {
            credentials {
                username "username"
                password "pw"
            }
            url "http://repo.mycompany.com"
        }
    }
}

现在, 当你运 gradle uploadArchives, Gradle 将构建和上传你的 Jar. Gradle 也会生成和上传 ivy.xml .

你也可以发布到 Maven 库.语法是稍有不同[4]. 请注意你需要加入 Maven 插件来发布一个 Maven 库. 在下面的例子里, Gradle 将生成和上传 pom.xml.

例子 8.9. 发布 Maven 库

build.gradle

apply plugin: 'maven'

uploadArchives {
    repositories {
        mavenDeployer {
            repository(url: "file://localhost/tmp/myRepo/")
        }
    }
}

Chapter 53, Publishing artifacts, 发布 artifacts 里有更加具体的介绍.

[3] 我们认为这令人困惑,我们正在在Gradle DSL中逐步的区别这两个概念.

[4] 我们正在努力解决从Maven仓库发布,获取的语法一致性.