API文档: | IvyPublication |
---|
AnIvyPublication
是 Gradle 如何将 Ivy 格式的内容发布到 Ivy 存储库的表示/配置。您publishing.publications
可以通过提供IvyPublication
类型来
直接将命名的 Ivy 发布添加到项目的容器中。
publishing {
publications {
myPublicationName(IvyPublication) {
// Configure the publication here
}
}
}
标识出版物属性的 Ivy 模块映射如下:
module
-project.name
organisation
-project.group
revision
-project.version
status
-project.status
对于某些常见用例,通常使用 ( 来指定要发布的组件就足够了IvyPublication.from(org.gradle.api.component.SoftwareComponent)
。已发布的组件用于确定要发布哪些工件,以及应在生成的 ivy 描述符文件中列出哪些配置和依赖项。
您可以通过向方法提供闭包来将配置添加到生成的 ivy 描述符文件中IvyPublication.configurations(org.gradle.api.Action)
。
要将其他工件添加到已发布的集合中,请使用IvyPublication.artifact(java.lang.Object)
和IvyPublication.artifact(java.lang.Object, org.gradle.api.Action)
方法。您还可以使用 完全替换已发布的工件集IvyPublication.setArtifacts(java.lang.Iterable)
。这些方法共同使您能够完全控制要发布的工件。
此外,还IvyModuleDescriptorSpec
提供配置方法来自定义许可证、作者以及要在 Ivy 模块描述符中发布的描述。
对于发布的任何其他调整,可以在发布之前修改生成的 Ivy 描述符文件。这是使用该IvyModuleDescriptorSpec.withXml(org.gradle.api.Action)
方法完成的,通常是通过传递给该方法的闭包来完成IvyPublication.descriptor(org.gradle.api.Action)
。
plugins { id 'java' id 'ivy-publish' } task sourceJar(type: Jar) { from sourceSets.main.allJava } publishing { publications { myPublication(IvyPublication) { from components.java artifact(sourceJar) { type "source" extension "src.jar" conf "runtime" } descriptor { license { name = "Custom License" } author { name = "Custom Name" } description { text = "Custom Description" } } } } }
财产 | 描述 |
artifacts | 本出版物的完整工件集。 |
configurations | 本出版物的完整配置集。 |
descriptor | 将发布的模块描述符。 |
module | 本出版物的模块。 |
organisation | 本出版物的组织。 |
revision | 本出版物的修订版。 |
方法 | 描述 |
artifact(source) |
|
artifact(source, config) | 创建 |
configurations(config) | 定义一些 |
descriptor(configure) | 配置将发布的描述符。 |
from(component) | 提供应发布的软件组件。 |
suppressAllIvyMetadataWarnings() | 消除 Ivy 出版物的所有兼容性警告。当使用无法完全映射到 Ivy xml 的 Gradle 功能时,会发出警告。 |
suppressIvyMetadataWarningsFor(variantName) | 消除指定变体的 Ivy 发布的兼容性警告。当使用无法完全映射到 Ivy xml 的 Gradle 功能时,会发出警告。 |
IvyArtifactSet
artifacts
本出版物的完整工件集。
设置此属性将清除任何先前添加的工件并从指定源创建工件。每个提供的源均按照 进行解释IvyPublication.artifact(java.lang.Object)
。例如,要排除组件声明的依赖项,而使用一组自定义工件:
plugins { id 'java' id 'ivy-publish' } task sourceJar(type: Jar) { archiveClassifier = "source" } publishing { publications { ivy(IvyPublication) { from components.java artifacts = ["my-custom-jar.jar", sourceJar] } } }
IvyConfigurationContainer
configurations
(只读)
本出版物的完整配置集。
IvyModuleDescriptorSpec
descriptor
(只读)
将发布的模块描述符。
String
module
本出版物的模块。
String
organisation
本出版物的组织。
String
revision
本出版物的修订版。
IvyArtifact
artifact
(Object
来源)
IvyArtifact
创建要包含在出版物中的自定义。该artifact
方法可以采用多种输入:
- 一个
PublishArtifact
例子。名称、类型、扩展名和分类器值取自提供的实例。 - 一个
AbstractArchiveTask
例子。名称、类型、扩展名和分类器值取自提供的实例。 File
任何可以通过方法解决的事情Project.file(java.lang.Object)
。名称、扩展名和分类器值是从文件名中插入的。Map
包含可解析为任何其他输入类型(包括文件)的“源”条目。该映射可以包含附加属性以进一步配置所构造的工件。
以下示例演示了各种自定义工件的添加。
plugins { id 'ivy-publish' } task sourceJar(type: Jar) { archiveClassifier = "source" } task genDocs { doLast { // Generate 'my-docs-file.htm' } } publishing { publications { ivy(IvyPublication) { artifact sourceJar // Publish the output of the sourceJar task artifact 'my-file-name.jar' // Publish a file created outside of the build artifact source: 'my-docs-file.htm', classifier: 'docs', extension: 'html', builtBy: genDocs // Publish a file generated by the 'genDocs' task } } }
IvyArtifact
artifact
(Object
来源,配置)Action
<? super IvyArtifact
>
Action
<? super IvyArtifact
>创建IvyArtifact
要包含在发布中的内容,该发布由关联操作配置。第一个参数用于创建自定义工件并将其添加到出版物中,按照IvyPublication.artifact(java.lang.Object)
。IvyArtifact
然后使用提供的操作配置创建的内容。此方法还通过强制类型接受配置操作作为闭包参数。
plugins { id 'ivy-publish' } task sourceJar(type: Jar) { archiveClassifier = "source" } task genDocs { doLast { // Generate 'my-docs-file.htm' } } publishing { publications { ivy(IvyPublication) { artifact(sourceJar) { // These values will be used instead of the values from the task. The task values will not be updated. classifier "src" extension "zip" conf "runtime->default" } artifact("my-docs-file.htm") { type "documentation" extension "html" builtBy genDocs } } } }
void
configurations
(配置)Action
<? super IvyConfigurationContainer
>
Action
<? super IvyConfigurationContainer
>定义一些IvyConfiguration
应该包含在已发布的ivy模块描述符文件中的s。以下示例演示如何添加“testCompile”配置以及扩展它的“testRuntime”配置。
plugins { id 'java' id 'ivy-publish' } publishing { publications { ivy(IvyPublication) { configurations { testCompile {} testRuntime { extend "testCompile" } } } } }
void
descriptor
(配置)Action
<? super IvyModuleDescriptorSpec
>
Action
<? super IvyModuleDescriptorSpec
>配置将发布的描述符。
可以使用该IvyModuleDescriptorSpec.withXml(org.gradle.api.Action)
方法修改描述符XML。
void
from
(SoftwareComponent
成分)
提供应发布的软件组件。
- 组件声明的任何工件都将包含在发布中。
- 组件声明的依赖项将包含在已发布的元数据中。
目前支持 2 种类型的组件:“components.java”(由 JavaPlugin 添加)和“components.web”(由 WarPlugin 添加)。对于任何单独的 IvyPublication,只能以这种方式提供单个组件。以下示例演示了如何将“java”组件发布到ivy存储库。
plugins { id 'java' id 'ivy-publish' } publishing { publications { ivy(IvyPublication) { from components.java } } }
void
suppressIvyMetadataWarningsFor
(String
变体名称)
消除指定变体的 Ivy 发布的兼容性警告。当使用无法完全映射到 Ivy xml 的 Gradle 功能时,会发出警告。