19

我使用的是 com.sun.jersey-server/json/client 的旧版本(1.5),它必须是这个版本,所以请不要建议使用更新的版本。

在我的 pom.xml 中,我引用它:

    <dependency>
        <groupId>com.sun.jersey</groupId>
        <artifactId>jersey-server</artifactId>
        <version>1.5</version>
        <type>jar</type>
        <scope>compile</scope>
        <exclusions>
            <exclusion>
                <!-- version conflicts with explicit direct dependency -->
                <groupId>org.codehaus.jettison</groupId>
                <artifactId>jettison</artifactId>
            </exclusion>
        </exclusions>
    </dependency>

编译给出此输出,但有错误:

    [INFO] Scanning for projects...
    [INFO]------------------------------------------------------------------------
    [INFO] Building MediaAssistantWebService
    [INFO]    task-segment: [clean, install]
    [INFO]------------------------------------------------------------------------
     [...]
    [INFO] Using 'UTF-8' encoding to copy filtered resources.
    [INFO] Copying 1 resource
    Downloading: http://repositories.dai-labor.de/extern/content/repositories/dai-open/com/sun/jersey/jersey-server/1.5/jersey-server-1.5.pom
    [INFO] Unable to find resource 'com.sun.jersey:jersey-server:pom:1.5' in repository dai-open (http://repositories.dai-labor.de/extern/content/repositories/dai-open)
    Downloading: http://download.java.net/maven/2//com/sun/jersey/jersey-server/1.5/jersey-server-1.5.pom 10K downloaded  (jersey-server-1.5.pom)
    Downloading: http://maven.glassfish.org/content/groups/glassfish/com/sun/jersey/jersey-project/1.5/jersey-project-1.5.pom 185b downloaded  (jersey-project-1.5.pom)
    [WARNING] *** CHECKSUM FAILED - Checksum failed on download: local = '6c9fd3d150b8a5f0ca676f49b8ed603793cabebb'; remote = '<html><head><title>301' - RETRYING
    Downloading: http://maven.glassfish.org/content/groups/glassfish/com/sun/jersey/jersey-project/1.5/jersey-project-1.5.pom185b downloaded  (jersey-project-1.5.pom)
    [WARNING] *** CHECKSUM FAILED - Checksum failed on download: local '6c9fd3d150b8a5f0ca676f49b8ed603793cabebb'; remote = '<html><head><title>301' - IGNORING
    [INFO] ------------------------------------------------------------------------
    [ERROR] BUILD ERROR
    [INFO] ------------------------------------------------------------------------
    [INFO] Error building POM (may not be this project's POM).

    Project ID: null:jersey-server:bundle:null

    Reason: Cannot find parent: com.sun.jersey:jersey-project for project: null:jersey-server:bundle:null for project null:jersey-server:bundle:null

在寻找解决方案后,我将此存储库添加到我的 pom 中,因此 maven 会首先查看:

<repository>
  <id>maven2-repository.dev.java.net</id>
  <name>Java.net Repository for Maven</name>
  <url>http://download.java.net/maven/2/</url>
  <layout>default</layout>
</repository>

但这并没有做任何事情。我删除了.m2/jersey文件夹并mvn clean compile再次尝试。它仍然尝试从 glassfish-404 存储库下载它。

有谁知道我必须更改什么才能正确下载?

4

5 回答 5

21

尝试在其他人之前添加 Maven 中心的存储库:

<repositories>
    <repository>
        <id>maven-central</id>
        <url>http://repo1.maven.org/maven2</url>
    </repository>
    ...
</repositories>

更好的选择是设置 nexus 服务器并删除 pom 文件中的存储库部分:http: //www.sonatype.com/people/2009/02/why-putting-repositories-in-your-poms-is-一个坏主意/

于 2012-07-27T15:11:00.670 回答
4

如果您查看 jersey 引用的 pom,它包含来自 glassfish.org 的一些 repo。 http://download.java.net/maven/2//com/sun/jersey/jersey-server/1.5/jersey-server-1.5.pom

<repositories>
    <repository>
        <id>glassfish-repository</id>
        <name>Repository for Glassfish</name>
        <url>http://maven.glassfish.org/content/groups/glassfish</url>
    </repository>
</repositories>

当尝试下载传递依赖项时,服务器会发送重定向响应,因此您会在您提供的日志中看到校验和错误。

在浏览器中试试这个: http ://maven.glassfish.org/content/groups/glassfish/com/sun/jersey/jersey-project/1.5/jersey-project-1.5.pom

我知道这不能解决您的问题(而且太麻烦),但是您可以尝试mvn install在本地尝试 jerser-server 1.5 所需的依赖项,以便它不会尝试下载这些依赖项吗?

于 2012-07-27T15:11:49.867 回答
4

唯一对我有用的解决方案是在 glassfish 存储库的 settings.xml 中添加一个镜像:

<mirror>
    <id>glassfish-mirror</id>
    <name>glassfish mirror</name>
    <url>http://maven.nuxeo.org/nexus/content/repositories/public-releases</url>
    <mirrorOf>glassfish-repository</mirrorOf>
</mirror>

正如这里所解释的

于 2014-12-02T11:33:46.853 回答
0

我想认为在下载中包含所有依赖项是明智的,这将是一种幻想。当然最好让maven下载它们。花几个小时追踪找不到哪个愚蠢的回购或不必要的膨胀罐,真是太有趣了!我知道我必须在这一点上站在大多数人的一边,因为没有其他人敢于提出相反的建议。

于 2013-01-12T18:46:10.100 回答
0

只需添加:

<repository>
    <id>maven-central</id>
    <url>http://repo1.maven.org/maven2</url>
</repository>

我的 POM.xml 工作正常

于 2015-07-05T12:09:50.063 回答