我有以下依賴我build.gradle
:如何從Gradle Maven Publishing插件構建的POM中排除依賴項?
dependencies {
compile 'org.antlr:antlr4-runtime:4.5.1'
compile 'org.slf4j:slf4j-api:1.7.12'
antlr "org.antlr:antlr4:4.5.1"
testCompile group: 'junit', name: 'junit', version: '4.11'
testCompile 'org.spockframework:spock-core:1.0-groovy-2.4'
testCompile 'org.codehaus.groovy:groovy-all:2.4.4'
testCompile 'cglib:cglib-nodep:3.1'
testCompile 'org.objenesis:objenesis:2.1'
}
當我使用Maven發佈插件發佈我的圖書館,它包括了ANTLR運行時和編譯時JAR文件作爲generated POM依賴關係:
<dependencies>
<dependency> <!-- runtime artifact -->
<groupId>org.antlr</groupId>
<artifactId>antlr4-runtime</artifactId>
<version>4.5.1</version>
<scope>runtime</scope>
</dependency>
<dependency> <!-- compile time artifact, should not be included -->
<groupId>org.antlr</groupId>
<artifactId>antlr4</artifactId>
<version>4.5.1</version>
<scope>runtime</scope>
</dependency>
</dependencies>
我只希望將運行時庫包含在此POM中。
罪魁禍首是antlr
依賴項:如果我刪除此行,生成的POM不具有編譯時間依賴性。但是,構建失敗。
清楚你從'antlr'配置將依賴於你的'compile'配置別的地方在你的build.gradle。需要看到更多的build.gradle。另外爲什麼你有一個'antlr'配置? – RaGe
當然,這裏是build.grade:https://github.com/graphql-java/graphql-java/blob/v2.1.0/build.gradle。我有一個'antlr'配置,因爲我使用了[Gradle ANTLR插件](https://docs.gradle.org/current/userguide/antlr_plugin.html) –
@RaGe:'./gradlew generatePomFileForGraphqlJavaPublication'生成了pom 'build/publications/graphqlJava/pom-default.xml' –