Maven "Не удалось разрешить зависимости" для openid4java
Резюме:
Запуск mvn war: war завершается с ошибками, в том числе:
Msgstr "Не удалось разрешить следующие артефакты: org.openid4java:openid4java:jar:0.9.6".
Я бы связал это с тем фактом, что я новичок Maven, но я вижу, что другие люди разместили на веб-сайте openid4java сообщение о том , что в центральном Maven для openid4java отсутствуют фляги.
Подробности:
Я пытаюсь освоиться с openid4java, запустив пример приложения Simple-OpenID, которое включено в последнюю версию openid4java (0.9.6.662).
В соответствии с файлом Readme " Для создания этой демоверсии требуется Apache Maven2". В файле Readme также говорится: "Задача mvn war: war должна создать файл войны, который можно развернуть, скопировав файл войны".
До сих пор я работал с Ant и Mavent Ant Tasks, но решил, что сегодня укушу пулю и установлю Maven 3.0.3. Я следовал инструкциям по установке и теперь могу успешно запустить "mvn --version"
Когда я запускаю "mvn war: war", некоторые файлы действительно загружаются в мой локальный репозиторий, но в конечном итоге сборка завершается неудачно со следующим выдержанным сообщением:
[ERROR] Failed to execute goal on project simple-openid: Could not resolve dependencies for project org.openid4java:simple-openid:war:0.9.6: The following artifacts could not be resolved: org.openid4java:openid4java:jar:0.9.6, org.openid4java:openid4java-consumer:jar:0.9.6, org.openid4java:openid4java-server:jar:0.9.6, org.openid4java:openid4java-server-JdbcServerAssociationStore:jar:0.9.6, org.openid4java:openid4java-consumer-SampleConsumer:jar:0.9.6, org.openid4java:openid4java-server-SampleServer:jar:0.9.6: Failure to find org.openid4java:openid4java:jar:0.9.6 in http://repo1.maven.org/maven2 was cached in the local repository, resolution will not be reattempted until the update interval of central has elapsed or updates are forced -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal on project simple-openid: Could not resolve dependencies for project org.openid4java:simple-openid:war:0.9.6: The following artifacts could not be resolved: org.openid4java:openid4java:jar:0.9.6, org.openid4java:openid4java-consumer:jar:0.9.6, org.openid4java:openid4java-server:jar:0.9.6, org.openid4java:openid4java-server-JdbcServerAssociationStore:jar:0.9.6, org.openid4java:openid4java-consumer-SampleConsumer:jar:0.9.6, org.openid4java:openid4java-server-SampleServer:jar:0.9.6: Failure to find org.openid4java:openid4java:jar:0.9.6 in http://repo1.maven.org/maven2 was cached in the local repository, resolution will not be reattempted until the update interval of central has elapsed or updates are forced
at org.apache.maven.lifecycle.internal.LifecycleDependencyResolver.getDependencies(LifecycleDependencyResolver.java:196)
Caused by: org.apache.maven.project.DependencyResolutionException: Could not resolve dependencies for project org.openid4java:simple-openid:war:0.9.6: The following artifacts could not be resolved: org.openid4java:openid4java:jar:0.9.6, org.openid4java:openid4java-consumer:jar:0.9.6, org.openid4java:openid4java-server:jar:0.9.6, org.openid4java:openid4java-server-JdbcServerAssociationStore:jar:0.9.6, org.openid4java:openid4java-consumer-SampleConsumer:jar:0.9.6, org.openid4java:openid4java-server-SampleServer:jar:0.9.6: Failure
Caused by: org.sonatype.aether.resolution.DependencyResolutionException: The following artifacts could not be resolved: org.openid4java:openid4java:jar:0.9.6, org.openid4java:openid4java-consumer:jar:0.9.6, org.openid4java:openid4java-server:jar:0.9.6, org.openid4java:openid4java-server-JdbcServerAssociationStore:jar:0.9.6, org.openid4java:openid4java-consumer-SampleConsumer:jar:0.9.6, org.openid4java:openid4java-server-SampleServer:jar:0.9.6: Failure to find org.openid4java:openid4java:jar:0.9.6 in
Я что-то здесь не так делаю или банки вообще не хватает в репозитории Maven?
5 ответов
Я смог решить эту проблему, добавив <type>pom</type>
в pom.xml. Я нашел ответ в гугл-группе OpenID4Java в этой теме.
Вот что говорит нить в группе Google:
Я имею в виду, что вы должны добавить "pom" в раздел зависимостей openid4java в вашем pom.xml:
<dependency> <groupId>org.openid4java</groupId> <artifactId>openid4java-consumer</artifactId> <!--artifactId>openid4java-server</artifactId--> <!--artifactId>openid4java-infocard</artifactId--> <!--artifactId>openid4java-xri</artifactId--> <!--artifactId>openid4java</artifactId--> <!--artifactId>openid4java-full</artifactId--> <version>0.9.6</version> <type>pom</type> <-----------------------This line can not be omitted. </dependency>
Тип openid4java-consumer/openid4java-server/.... все это "pom", а не "jar". Файл jar находится в openid4java-nodeps, который зависит от openid4java-consumer/openid4java-server...
Вызывается: org.sonatype.aether.resolution.DependencyResolutionException: не удалось разрешить следующие артефакты: org.openid4java:openid4java:jar:0.9.6, org.openid4java:openid4java-consumer:jar:0.9.6, org.openidj:openid4java-server:jar:0.9.6, org.openid4java:openid4java-server-JdbcServerAssociationStore:jar:0.9.6, org.openid4java:openid4java-consumer-SampleConsumer:jar:0.9.6, org.openid4java -SampleServer:jar:0.9.6: ошибка при поиске org.openid4java:openid4java:jar:0.9.6 in
Вам нужно либо добавить <repository>
в ваш проект, содержащий эти артефакты, или установите их в свой локальный репозиторий.
Попробуйте https://oss.sonatype.org/content/repositories/openid4java/ (находится на MavenHowTo)
Другой способ разрешить зависимость в Grails - добавить репозиторий maven "https://oss.sonatype.org/content/repositories/openid4java/" и указать в качестве артефакта "openid4java-nodeps".
repositories {
grailsPlugins()
grailsHome()
grailsCentral()
mavenCentral()
mavenRepo "https://oss.sonatype.org/content/repositories/openid4java/"
}
dependencies {
runtime('mysql:mysql-connector-java:5.1.19',
'org.apache.httpcomponents:httpclient:4.2',
'org.openid4java:openid4java-nodeps:0.9.6') { excludes "xml-apis" }
}
Вот что я сделал, чтобы он скомпилировался и запустился:
- Зайдите в свой m2 или maven центральный репозиторий,
- org-> openID4java-> openID4java-> 0.9.6 и отредактируйте файл openid4java-0.9.6.pom и добавьте pom к зависимостям, не имеющим jar
- org-> openID4java-> openid4java-consumer-SampleConsumer-> 0.9.6 и отредактируйте файл openid4java-consumer-SampleConsumer-0.9.6.pom и добавьте pom к артефакту openId-consumer
- org-> openID4java-> openid4java-openid4java-server-SampleServer-> 0.9.6 и отредактируйте файл openid4java-server-SampleServer-0.9.6.pom и добавьте pom к артефакту сервера openId-server
- org-> openID4java-> openid4java-server-JdbcServerAssociationStore-0.9.6, откройте файл pom и добавьте pom к артефакту сервера openID.
слияние Eclipse, затем щелкните правой кнопкой мыши проект и maven и обновите зависимость, которую вы готовы использовать, для пользователя инструмента maven, скомпилируйте напрямую, и вы готовы к работе
Устанавливаем ли maven пакет для каждой зависимости openid4java-xxx
не удалось как фоллов
запустите задачу сборки муравья внутри вашего
openid4java-0.9.6
каталогзатем выполните:
mvn install:install-file -DgroupId=org.openid4java -DartifactId=openid4java-consumer -Dversion=0.9.6 -Dpackaging=jar -Dfile=<<change_this_path_to>>build\openid4java.jar mvn install:install-file -DgroupId=org.openid4java -DartifactId=openid4java-server -Dversion=0.9.6 -Dpackaging=jar -Dfile=<<change_this_path_to>>build\openid4java.jar mvn install:install-file -DgroupId=org.openid4java -DartifactId=openid4java-server-JdbcServerAssociationStore -Dversion=0.9.6 -Dpackaging=jar -Dfile=<<change_this_path_to>>build\openid4java.jar mvn install:install-file -DgroupId=org.openid4java -DartifactId=openid4java-consumer-SampleConsumer -Dversion=0.9.6 -Dpackaging=jar -Dfile=<<change_this_path_to>>build\openid4java.jar mvn install:install-file -DgroupId=org.openid4java -DartifactId=openid4java-server-SampleServer -Dversion=0.9.6 -Dpackaging=jar -Dfile=<<change_this_path_to>>build\openid4java.jar
И это должно сделать это!