2013-11-29 2 views
0

Как создать новую задачу в проекте java gradle java, который строит проект как обычно, но заменяет одну из зависимостей времени компиляции для другой библиотеки?Gradle: Заменить зависимость в альтернативной конфигурации сборки

+0

Это вопрос о том, как (условно) поменять местами зависимость, или конкретно о том, как сделать это с задачей (и вы уже знаете, как поменять зависимости в целом)? Можете ли вы рассказать о том, почему/когда необходимо заменить обмен? –

+0

@PeterNiederwieser Я создаю файл .NET .dll с IKVM вместе со стандартным JAR. Часть проекта должна реализовывать некоторые .NET-интерфейсы в версии сборки IKVM и поэтому скомпилирована против библиотеки, которая содержит типы заглушек, чтобы сделать компилятор Java счастливым. Однако сборка, отличная от IKVM, должна быть построена против другой библиотеки, которая содержит стандартные реализации Java этих интерфейсов. Я вовсе не уверен, как условно обменивать зависимости. –

+0

Являются ли библиотеки, которые необходимо поменять местами/в рамках одной и той же сборки, или же они зависят от внешних зависимостей от репозитория? –

ответ

0

AFAIK нет документального способа сделать это. Единственным обходным решением, которое приходит на ум, является извлечение источников из вашей банки и подключение их только в одном вкусе. В вашем build.gradle:

android { 
    ... 
    productFlavors { 
     flavor2 { 
     } 
     flavor1 { 
     } 
    } 

    sourceSets { 
     main { 
      java.srcDirs = ['src/commonFiles/java'] 
     } 

     flavor2 { 
      java.srcDirs = ['path_to_your_lib_src'] 
     } 

     flavor1 { 
      java.srcDirs = ['path_to_your_jar_src'] 
     } 
    } 
} 
Смежные вопросы