Как указать gradle на локальную зависимость, которая может иметь разные пути?

Чтобы сделать это более понятным, у меня есть код в моем банке, что при запуске он загружает необходимые банки для правильной работы и хранит их в /where / jar / находится / находится / newFolder / libs / . Теперь я добавил те зависимости, которые вручную загружаются как compileOnly в мой gradle, но я не знаю, как указать gradle на место, где находятся загруженные библиотеки, так как это может быть различным путем на каждой запущенной машине.

Рассматриваемая зависимость - это io.sentry, которую я загружаю в libs при запуске jar, но как сказать моему jar, где найти классы, если они находятся в папке libs, как я уже говорил ранее.

dependencies {
    testCompile group: 'junit', name: 'junit', version: Ɗ.12'
    compileOnly 'org.jetbrains:annotations:15.0'
    compileOnly 'io.sentry:sentry:1.7.30'
}

Всего 1 ответ


org.jetbrains:annotations и io.sentry:sentry доступны публично в Интернете. Нет необходимости загружать артефакты вручную. Вы можете просто сделать:

repositories {
    mavenCentral()
}

dependencies {
    testCompile group: 'junit', name: 'junit', version: Ɗ.12'
    compileOnly 'org.jetbrains:annotations:15.0'
    compileOnly 'io.sentry:sentry:1.7.30'
}

Но если по какой-то причине вы должны импортировать артефакты локально, то вы можете сделать что-то вроде:

repositories {
   flatDir {
       dirs '/wherever/jar/is/located/newFolder/libs/'
   }
}

dependencies {
    testCompile group: 'junit', name: 'junit', version: Ɗ.12'
    compileOnly 'org.jetbrains:annotations:15.0'
    compileOnly 'io.sentry:sentry:1.7.30'
}

Или включите их один за другим:

dependencies {
    testCompile group: 'junit', name: 'junit', version: Ɗ.12'
    compileOnly files('/wherever/jar/is/located/newFolder/libs/libs/jetbrains.jar')
    compileOnly files('/wherever/jar/is/located/newFolder/libs/libs/sentry.jar'
}

Есть идеи?

10000