У меня есть следующие зависимости в моей build.gradle
:Как я могу исключить зависимость от POM, созданного плагином Gradle Maven Publishing?
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 Publishing, чтобы опубликовать мою библиотеку, она включает в себя как в ANTLR выполнения и компиляции время JARs в качестве зависимостей в 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' –