Изменение расширения по умолчанию для файла зависимости - PullRequest
0 голосов
/ 23 мая 2018

Я создаю плагин Gradle.В свой плагин я добавляю новую конфигурацию:

project.getConfigurations().create("custom");

Все зависимости в конфигурации «custom» имеют расширение «custom».Если я объявлю свои зависимости следующим образом:

dependencies {
    custom group: 'my-custom', name: 'my-custom', version: '1.0.00'
}

Это приведет к ошибке с сообщением об ошибке, например:

Could not resolve all files for configuration ':custom'.
> Could not find my-custom:my-custom:1.0.00.
  Searched in the following locations:
      file:.../my-custom-1.0.00.jar

Обратите внимание на расширение .jar.Мне нужно явно установить расширение, как показано ниже:

dependencies {
    custom group: 'my-custom', name: 'my-custom', version: '1.0.00', ext: 'custom'
}

Тем не менее, пользовательский интерфейс не очень хорош, если они всегда должны указывать расширение.Можно ли изменить расширение по умолчанию для моей конфигурации на «пользовательский».Таким образом, пользователю нужно будет явно указать расширение, только если оно отличается от значения по умолчанию (в данном случае это «.custom»)

1 Ответ

0 голосов
/ 23 мая 2018

К сожалению, это, кажется, не полностью поддерживается, в идеале это должно быть сделано аналогичным образом, как описано здесь: https://github.com/gradle/gradle/issues/1340 (замена configurations.all на configurations.custom и ext вместо classifier)

Для обхода и взлома вы можете создать замыкание / метод для добавления ext и добавления в пользовательскую конфигурацию:

configurations { custom }
def cust = { project.dependencies.custom it << [ext: it.ext?:'custom'] }

dependencies {
    cust group: 'my-custom', name: 'my-custom', version: '1.0.00'
    cust group: 'my-custom', name: 'no-custom', version: '1.0.00', ext: 'override'
}
//note this also works outside dependencies, its not actually used
cust group: 'my-custom', name: 'oh-no-custom', version: '1.0.00'

для плагина, который вы можете просто вставить в проектext и назовите его как customDependency вместо фактического имени конфигурации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...