Pat*_*ick 5 gradle maven maven-publish
我有一个包含常用类和那些特别用于单元测试的类的库。所以我想从同一个项目中发布两个单独的工件。我使用 maven 插件的工作解决方案如下所示:
task jarTest (type: Jar, dependsOn: testClasses) {
from sourceSets.test.output
archiveBaseName.set('foo-test')
description = 'test utilities'
}
artifacts {
archives jarTest
}
uploadArchives {
repositories {
mavenDeployer {
//...
addFilter('foo') {artifact, file ->
artifact.name == 'foo'
}
addFilter('foo-test') {artifact, file ->
artifact.name == 'foo-test'
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
不幸的是,maven 插件已被弃用,并将在 Gradle 7 中删除。 maven-publish 是建议的替代品,我正在寻找替代解决方案。
我目前的尝试看起来像
publishing {
publications {
mavenJava(MavenPublication) {
artifact jar
artifact jarTest
}
}
}
Run Code Online (Sandbox Code Playgroud)
存在两个同名工件的明显问题。
像这样设置名称不起作用:
artifactId = jar.archiveBaseName
Run Code Online (Sandbox Code Playgroud)
这既不是:
afterEvaluate {
artifactId = jar.archiveBaseName
}
Run Code Online (Sandbox Code Playgroud)
可以像这样配置工件
artifact(jar) {
classifier "src"
extension "zip"
}
Run Code Online (Sandbox Code Playgroud)
但是关于文档的名称没有属性(https://docs.gradle.org/current/dsl/org.gradle.api.publish.maven.MavenArtifact.html)。
所以我在找…… 就像 maven 插件中的 addFilter 一样。
| 归档时间: |
|
| 查看次数: |
385 次 |
| 最近记录: |