Я использую задачу makepom
Ivy для создания файла Pom, используемого для публикации sh артефактов в центральном хранилище. Здесь мои секции ivy.xml
configurations
и dependencies
:
<configurations defaultconf="runtime"
defaultconfmapping="compile,runtime->master; sources->sources; javadoc->javadoc; optional->optional">
<conf name="default"/>
<conf name="compile"/>
<conf name="runtime"/>
<conf name="sources"/>
<conf name="javadoc"/>
<conf name="optional"/>
</configurations>
<dependencies>
<dependency org="com.google.gwt" name="gwt-user" rev="${depver.gwt}" conf="compile"/>
<dependency org="com.google.gwt" name="gwt-dev" rev="${depver.gwt}" conf="compile"/>
<dependency org="com.google.jsinterop" name="base" rev="${depver.jsinterop-base}" conf="compile; runtime"/>
<dependency org="com.google.jsinterop" name="jsinterop-annotations" rev="${depver.jsinterop-annotations}" conf="compile"/>
<dependency org="com.google.javascript" name="closure-compiler" rev="${depver.closure-compiler}" conf="compile->default"/>
</dependencies>
Версии правильно взяты из отдельного файла свойств.
Как видите, для конфигурации compile
нужны все артефакты и runtime
нужны только com.google.jsinterop:base
.
Здесь мой makepom
вызов:
<ivy:makepom ivyfile="ivy.xml" pomfile="dist/pom.pom" templatefile="pom.template">
<mapping conf="compile" scope="compile"/>
<mapping conf="runtime" scope="runtime"/>
</ivy:makepom>
По умолчанию задача makepom
учитывает все конфигурации Ivy, когда ее атрибут conf
опущен Подузлы mapping
сопоставляют мои конфигурации Ivy compile
и runtime
с областями Maven compile
и runtime
соответственно.
Проблема заключается в том, что этот вызов приводит к следующему разделу dependencies
Pom:
<dependencies>
<dependency>
<groupId>com.google.gwt</groupId>
<artifactId>gwt-user</artifactId>
<version>2.8.2</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>com.google.gwt</groupId>
<artifactId>gwt-dev</artifactId>
<version>2.8.2</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>com.google.jsinterop</groupId>
<artifactId>base</artifactId>
<version>1.0.0</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>com.google.jsinterop</groupId>
<artifactId>jsinterop-annotations</artifactId>
<version>2.0.0</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>com.google.javascript</groupId>
<artifactId>closure-compiler</artifactId>
<version>v20200204</version>
<scope>compile</scope>
</dependency>
</dependencies>
, что является правильным, за исключением полностью забытой конфигурации / области действия runtime
Я ожидаю, что узел dependency
будет ссылаться на com.google.jsinterop:base
с областью действия runtime
. Что я должен сделать, чтобы получить правильный файл Pom?