4

摘要:
运行“mvn war:war”失败,错误包括:
“无法解析以下工件:org.openid4java:openid4java:jar:0.9.6”。

我将其归结为我是一个 Maven 菜鸟,但我看到其他人已经发布到openid4java网站,说明Maven 中心缺少用于 openid4java 的 jars 。

详细信息:
我正在尝试通过运行最新版本的 openid4java (0.9.6.662) 中包含的 Simple-OpenID 示例应用程序来加快使用 openid4java 的速度。

根据自述文件“这个演示需要apache Maven2 来构建”。自述文件还指出“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存储库中实际上缺少罐子?

4

5 回答 5

4

我能够通过添加<type>pom</type>到 pom.xml 来解决这个问题。我在这个线程的 OpenID4Java google group 中找到了答案。

以下是 google 组中的帖子所说的:

我的意思是你应该在你的 pom.xml 中将“pom”添加到 openid4java 的依赖部分:

   <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 依赖...

于 2011-07-03T15:27:08.903 回答
1

在 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" }
}
于 2012-05-21T02:57:55.593 回答
1

原因:org.sonatype.aether.resolution.DependencyResolutionException:无法解析以下工件: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: 找不到 org.openid4java:openid4java:jar:0.9.6 在

您需要将一个<repository>包含这些工件的项目添加到您的项目中,或者将它们安装到您的本地存储库中。

试试https://oss.sonatype.org/content/repositories/openid4java/(在MavenHowTo找到)

于 2011-07-01T00:14:18.033 回答
1

这是我为使其编译和运行所做的:

  1. 转到您的 m2 或 maven 中央存储库,
  2. org->openID4java->openID4java->0.9.6 并编辑 openid4java-0.9.6.pom 文件并将 pom 添加到没有 jar 的依赖项
  3. org->openID4java->openid4java-consumer-SampleConsumer->0.9.6 并编辑 openid4java-consumer-SampleConsumer-0.9.6.pom 文件并将 pom 添加到 openId-consumer 的工件中
  4. org->openID4java->openid4java-openid4java-server-SampleServer->0.9.6 并编辑 openid4java-server-SampleServer-0.9.6.pom 文件并将 pom 添加到 openId-server 的工件中
  5. org->openID4java->openid4java-server-JdbcServerAssociationStore-0.9.6 并打开 pom 文件并将 pom 添加到 openID-server 工件。

融合Eclipse,然后右键项目和maven,更新依赖就可以了,对于maven工具用户,直接编译就可以了

于 2012-04-12T07:21:29.617 回答
0

为每个依赖项执行 maven 安装包openid4java-xxx失败,如下所示:

  1. openid4java-0.9.6在您的目录中运行 ant build 任务

  2. 然后执行:

    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
    

那应该这样做!

于 2012-08-08T11:44:02.553 回答