Подтвердить что ты не робот

Gradle: Как загрузить пользовательский JAR файл в репозиторий Maven

Я создаю файл jar без использования задачи Gradle Jar (мне нужно использовать задачу Ant для этой задачи внутри моей задачи). Как настроить uploadArchives для установки JAR в указанном репозитории.

Я попытался переопределить артефакт по умолчанию с помощью

uploadArchives {
    repositories {
        mavenDeployer {
            // some Maven configuration
        }
    }
}

artifacts {
    archives file: file('bin/result.jar')
}

но я получаю сообщение об ошибке, что не может быть двух артефактов с одним и тем же типом и классификатором, что означает, что эта конфигурация добавляет скорее, чем переопределяет конфигурацию.

4b9b3361

Ответ 1

Вы правы, artifacts закрытие может только добавлять артефакты к данной конфигурации (см. API ArtifactHandler).

У вас есть два варианта:

1) Добавьте фильтр артефактов, как описано здесь (см. главу 45.6.4.1. "Несколько артефактов для каждого проекта" ). Если вы используете это, попробуйте объявить конфигурацию archives следующим образом:

artifacts {
  archives file: file('bin/result.jar'), name: 'result', type: 'jar'
}

Таким образом, вы что-то вроде этого в своем фильтре артефакта:

addFilter('result') {artifact, file ->
  artifact.name == 'result'
}

2) Загрузите его как отдельный модуль maven. Если result.jar является единственным банком, который вы загружаете, это может быть хорошим решением.

configurations {
  resultArchives
}

uploadResultArchives {
  repositories {
    mavenDeployer {
      repository(url: "same/url/here")
    }
  }
}

artifacts{
  resultArchives file: file('bin/result.jar')
}

Надеюсь, что это поможет.