В настоящее время я работаю над проектом библиотеки Android, который имеет как внешние зависимости, такие как jacksonxml
, dagger2
и некоторые другие, так и зависимости локального модуля :featureOne
, :featureTwo
.
В моем файле Gradle я вручную добавляю зависимости в POM следующим образом:
pom.withXml {
// for dependencies and exclusions
def dependenciesNode = asNode().appendNode('dependencies')
configurations.implementation.allDependencies.withType(ModuleDependency) { ModuleDependency dp ->
def dependencyNode = dependenciesNode.appendNode('dependency')
dependencyNode.appendNode('groupId', dp.group)
dependencyNode.appendNode('artifactId', dp.name)
dependencyNode.appendNode('version', dp.version)
// for exclusions
if (dp.excludeRules.size() > 0) {
def exclusions = dependencyNode.appendNode('exclusions')
dp.excludeRules.each { ExcludeRule ex ->
def exclusion = exclusions.appendNode('exclusion')
exclusion.appendNode('groupId', ex.group)
exclusion.appendNode('artifactId', ex.module)
}
}
}
}
После публикации в моем частном репозитории maven и добавления библиотеки в качестве зависимости от проекта приложения, Я получаю следующую ошибку сборки:
ERROR: Failed to resolve: library:featureOne:unspecified
И если я смотрю на POM, я вижу, что зависимости моих функций добавляются следующим образом:
<dependency>
<groupId>library</groupId>
<artifactId>featureOne</artifactId>
<version>unspecified</version>
</dependency>
<dependency>
<groupId>library</groupId>
<artifactId>featureTwo</artifactId>
<version>unspecified</version>
</dependency>
У меня также есть настройки публикации для каждого из файлов Gradle функции. Я не уверен, что еще нужно сделать, чтобы они правильно были включены в опубликованный артефакт.
Все работает хорошо, пока не притащу опубликованный артефакт. Любая помощь будет принята с благодарностью. Спасибо.