我有一个Gradle项目,它做了几个正交的事情:
编译并运行一些Java.
生成并发布工件.
这个工件与Java无关; 它是由自定义JavaExec任务生成的.但是,自动生成的POM(来自Maven插件)似乎包含错误的依赖项. 问题:我该如何防止这种情况?
我的build.gradle看起来像这样:
apply plugin: "java"
apply plugin: "maven"
configurations {
foo // Custom configuration for the artifact I want to build and publish
}
// Dependencies for Java configurations (nothing to do with foo)
dependencies {
compile "foo:foo:1.1"
testCompile "bar:bar:2.2"
}
// Custom task
task generateFoo(type: JavaExec) {
ext.outputFile = new File(buildDir, "foo.bar")
...
}
artifacts {
foo file: generateFoo.outputFile, builtBy: generateFoo
}
uploadFoo {
repositories {
mavenDeployer { ... }
}
}
我像这样调用Gradle:
./gradlew uploadFoo
AFAICS,foo
配置与Java配置无关.所以我希望发布的POM列出没有依赖关系.但是,我观察到列出的所有不相关的依赖项.
Maven插件的Gradle文档提示依赖映射conf2ScopeMappings
,但我完全不清楚我应该用它做什么(如果有的话).