我有一个Gradle项目,它将依赖项存储在toml文件中。我想生成POM文件的依赖关系。这是我的build.gradle文件:
plugins {
id 'maven-publish'
}
dependencies {
api ( libs.bundles.api) {
exclude(group: 'org.apache.hadoop', module: 'zookeeper')
exclude(group: 'org.apache.hadoop', module: 'slf4j-log4j12')
exclude(group: 'org.apache.hadoop', module: 'log4j')
exclude(group: 'org.apache.hadoop', module: 'jsp-api')
exclude(group: 'org.apache.hadoop', module: 'servlet-api')
}
compileOnly(libs.slf4j.api)
testImplementation(libs.bundles.test.implementation)
annotationProcessor(libs.lombok)
testAnnotationProcessor(libs.lombok)
}
publishing {
publications {
customPublication(MavenPublication) {
from components.java
}
}
}
字符串
当我跑的时候
gradle publishToMavenLocal
我只从libs.bundles.api中获取包含依赖项的pom文件。范围compileOnly、testImplementation、annotationProcessor、testAnnotationProcessor没有依赖关系。请帮助解决这个问题。
1条答案
按热度按时间pcww981p1#
已发布的POM文件将仅包含运行时依赖项。使用和运行项目所需的依赖项。这是正确的。
仅编译
这些仅在编译项目时需要,而在运行项目时不需要。
测试实作
这些仅在运行项目的测试时需要,而在将其作为依赖项运行时不需要。
注解处理器
这些仅在项目生成期间使用,运行项目时不需要。
测试注解处理器
只有在建置项目的测试期间才需要这些项目,而消费者使用项目时并不需要。
为了做你想做的事,你需要在发布中自定义POM:
这是在KotlinDSL中,但可以很容易地转换为Groovy DSL。
个字符