快速启动是一个简单示例,如果你想进行更详细的配置可以参考本文档
这一步的目的是生成一个符合 Maven 标准的 Metadata.
Medivh-Publish封装了Gradle官方的maven-publish 插件实现这个功能
如果你没有引入这个插件,Medivh-publisher 会自动帮你引入,你不需要做任何配置。
如果你已经使用了Maven-Publish插件配置,Medivh-Publish会自动使用你的配置,你不需要做任何额外的配置。
如果你对于 Maven-Publish插件配置没有完整填写,Medivh-Publish会帮你填入默认值,并且会在控制台输出警告信息。
Medivh-Publish > Maven-Publish > 默认值
所以如果你已经有了Maven-Publish配置,也可以继续使用,Medivh-Publish会自动使用你的配置。
publishing {
publications {
create<MavenPublication>("medivh-api") {
groupId = project.group.toString()
artifactId = project.name
version = project.version.toString()
from(components["java"])
pom{
name = "medivh-api"
description = "medivh plugin api"
url = "https://github.com/medivh-project/medivh"
licenses{
license{
name = "GPL-3.0 license"
url = "https://www.gnu.org/licenses/gpl-3.0.txt"
}
}
developers {
developer {
id = "id"
name = "name"
email = "email"
}
}
scm {
connection = "scm:git:"
url = "https://github.com/medivh-project/medivh"
}
}
}
}
}
和Maven-Publish配置非常类似
medivhPublisher{
groupId = project.group.toString()
artifactId = project.name
version = project.version.toString()
pom{
name = "medivh-api"
description = "medivh plugin api"
url = "https://github.com/medivh-project/medivh"
licenses{
license{
name = "GPL-3.0 license"
url = "https://www.gnu.org/licenses/gpl-3.0.txt"
}
}
developers {
developer {
id = "id"
name = "name"
email = "email"
}
}
scm {
connection = "scm:git:"
url = "https://github.com/medivh-project/medivh"
}
}
}
Medivh-Publish保证你无论怎么配置都不会出错,因为Medivh-Publish会帮你填充默认值,但仍建议你检查自己的配置是否有遗漏。
在Sonatype的 官方文档中,要求发布的Pom Xml中需要含有如下配置:
配置的填充颗粒度到每一个属性配置。举个例子:
scm信息需要包含 connection
和 url
两个属性,你配置了 connection
但是没有配置 url
,Medivh-Publish仍然会帮你填充另一个属性。
如果你手动配置了这些参数,即使这些内容是空的,Medivh-Publish会使用你的配置不会覆盖默认值,除非设置了 null,因为在 Maven 中这是非法的。
配置 | 是否必须 | 描述 |
---|---|---|
否 |
如果不上传,在IDE中无法下载源码 |
|
是 |
用于文件校验,后文会详细说明 |
|
是 |
上传工件的唯一标识 "com.example:my-library:1.0.0" |
|
是 |
包含name,description,url三个属性 |
|
是 |
||
是 |
||
是 |
关于版本控制的信息 |
Medivh-Publish
默认会增加源码和文档的上传,如果你不需要可以在build.gradle配置:
medivhPublisher{
withoutJavaDocJar()
withoutSourcesJar()
}
默认配置相当于:
java {
withJavadocJar()
withSourcesJar()
}
此配置最终是用户在引用你的库时需要的坐标,例如: com.example:my-library:1.0.0
Medivh-Publish 默认的配置是
groupId = project.group
artifactId = project.name
version = project.version
项目信息包含name,description,url三个属性
Medivh-Publish默认会把
name = project.name
description = project.description
Medivh-Publish会获取项目的 git远程仓库地址作为url的值,否则会填空字符
url = gitRemoteUrl or empty
Medivh-Publish 默认会获取git仓库的开发者信息
name 默认是 git config user.name
email 默认是 git config user.email
id 默认是 git config user.name