Gradle не будет импортировать банки из хранилища - PullRequest
0 голосов
/ 30 апреля 2019

У меня есть этот импорт в моем коде

import jargs.gnu.CmdLineParser;

Мой build.gradle имеет это в своих "зависимостях"

// https://mvnrepository.com/artifact/net.sourceforge.jargs/jargs
compile group: 'jargs', name: 'jargs', version: '1.0'

Для всех других перечисленных зависимостей они импортируются / загружаются независимо от того, что делает Gradle / Eclipse, но эта просто отказывается. Я заметил это на странице jargs Maven

Note: this artifact it located at WSO2 Dist repository (http://dist.wso2.org/maven2/)

Я немного покопался и подумал, что, возможно, этот пакет не был в обычном месте mavenCentral (), поэтому я попытался добавить еще один URL из примера, который я нашел в своем исследовании

buildscript {
    repositories {
        mavenCentral()
        maven { url "https://plugins.gradle.org/m2/" }
        maven { url "http://dist.wso2.org/maven2/" }
    }
    dependencies {
        classpath "gradle.plugin.com.github.onslip:gradle-one-jar:1.0.5
    }
}

Я обновил свой проект Gradle через Eclipse, но это ничего не решило. Тем временем я вручную загружаю флягу и помещаю ее в папку «libs» и добавляю

flatDir {
    dirs 'libs'
}

Что приводит меня туда, куда я хочу идти. Все проблемные области исчезают, когда я отмечаю FlagDir, но не делаю это через репозиторий Maven. Я чувствую, что я , что близко.

Ответы [ 2 ]

0 голосов
/ 02 мая 2019

Похоже, с одной стороны у вас несколько проблем, а с другой - jargs.

Для вашей настройки:

  • Репозитории buildscript используются для плагинов и их зависимостей. Это все, что нужно для настройки вашей сборки,
  • Обычные repositories используются для извлечения зависимостей вашего кода, как объявлено в вашей сборке, давайте назовем их репозиториями проектов.

Так что это нормально, что вам нужно добавить конкретный репозиторий в проект repositories.

Обратите внимание, что вам не нужно добавлять https://plugins.gradle.org/m2/ в репозитории проектов.

О jargs:

  • Похоже на странный артефакт, который можно найти в разных координатах в зависимости от хранилища.
    • Ваша проблема содержит URL-адрес, который указывает, что группа net.sourceforge.jargs, и не только jargs, но и не в Maven Central, а в репозитории
    • В вашем объявлении зависимости используется группа jargs, которая действительно действительна в этом другом хранилище, на которое вы ссылаетесь на .

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

0 голосов
/ 30 апреля 2019

Я обнаружил, что если я добавлю альтернативные URL-адреса в часть "репозитории", это будет работать

repositories {
    // Use jcenter for resolving your dependencies.
    // You can declare any Maven/Ivy/file repository here.
    //jcenter()
    mavenCentral()
    maven { url "https://plugins.gradle.org/m2/" }
    maven { url "http://dist.wso2.org/maven2/" }
    /*
    flatDir {
        dirs 'libs'
    }
    */
}

Полагаю, мне нужно лучше понять, для чего используются "репозитории" и "buildscript""также имеет" репозитории ".

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