Gradle - исключить пакет из зависимости

335
30 августа 2017, 14:37

Необходимо подключить Rhino (интерпретатор JavaScript) к приложению на Android. Используется Gradle, зависимость добавляется без проблем:

dependencies {
    ...
    compile "org.mozilla:rhino:1.7.7.2"
}

Проблема заключается в том, что Rhino содержит пакет "tools" (org.mozilla.javascript.tools), в котором используются классы javax.swing, отсутствующие на Android, из-за чего ProGuard ругается и не позволяет собрать приложение ("Can't find common super class..." для класса, который использует javax.swing.JInternalFrame и находится в ненужном package "tools").

Возможно ли как-то исключить этот пакет из зависимости? Сделать так, чтобы он просто игнорировался во время сборки и не попал в результирующее приложение.

Такой же вопрос был задан на форуме Gradle, но ответов не было: Exclude package from dependency/runtime repackage dependency

В поисках решения пробовал варианты:

compile ("org.mozilla:rhino:1.7.7.2") {
    exclude group: 'org.mozilla.javascript.tools'
}

и

sourceSets {
    main {
        java {
            exclude 'org/mozilla/javascript/tools/**'
        }
    }
}

, но безрезультатно.

Answer 1

Надо либо искать сборку без этого пакета, либо самому ее сделать, скачав исходники.

Либо контрибутить сюда: https://github.com/F43nd1r/rhino-android

READ ALSO
Android Studio: Генерация textView

Android Studio: Генерация textView

Ребят, помогите, в общем

424
Маппинг Many-to-Many в DTO с помощью Criteria в Hibernate

Маппинг Many-to-Many в DTO с помощью Criteria в Hibernate

У меня есть следующая проблема, и я даже не знаю решаема ли она в принципеЕсть ентити с отношением многие-ко-многим:

433
Удаление символов

Удаление символов

Имеется следующий код:

317
Android - как сделать EditText неактивным, в то же самое время сохраняя курсор?

Android - как сделать EditText неактивным, в то же самое время сохраняя курсор?

Я разрабатываю клавиатуру используя EditText и Button-ыПри нажатии на кнопку, текстовое поле заполняется соответствующей буквой

330