Maven无法解决刚刚发现的依赖关系

Dea*_*lze 2 maven

Maven一定是在失去理智.

我使用Netbeans Add Dependency对话框添加了依赖项.我找了jax-rs-ri.它从中央更新了索引并显示了几个版本jax-rs-ri.我选择1.9.1并将其添加到pom.xml:

    <dependency>
        <groupId>com.sun.jersey.ri</groupId>
        <artifactId>jax-rs-ri</artifactId>
        <version>1.9.1</version>
    </dependency>
Run Code Online (Sandbox Code Playgroud)

看起来正确,但是当我构建时,我收到以下错误:

Failed to execute goal on project reply-to.test-web: 
Could not resolve dependencies for project jms:reply-to.test-web:war:1.0-SNAPSHOT: 
Could not find artifact com.sun.jersey.ri:jax-rs-ri:jar:1.10-b03 in 
central (http://repo1.maven.org/maven2) -> [Help 1]
Run Code Online (Sandbox Code Playgroud)

我也尝试使用相同的结果更改以下存储库:

 <repositories>
    <repository>
        <id>maven2-repository.java.net</id>
        <name>Java.net Repository for Maven</name>
        <url>http://download.java.net/maven/2</url>
        <layout>default</layout>
    </repository>
</repositories>
Run Code Online (Sandbox Code Playgroud)

这在今天早些时候工作.是否有些东西被Maven打破了?

pal*_*int 5

在这些情况下,检查本地存储库(通常c:\Users\<username>\.m2\repository\com\sun\jersey\ri\jax-rs-ri/home/<username>/.m2/repository/com/sun/jersey/jax-rs-ri)和Central 是值得的:http: //search.maven.org/#artifactdetails | com.sun.jersey.ri | jax-rs-ri | 1.9.1 | pom (现在重要的部分是"可用下载"表.)

所以,没有任何jar文件只是一个zip(和POM).你应该<type>zip</type>在你的依赖中使用这样的:

<dependency>
    <groupId>com.sun.jersey.ri</groupId>
    <artifactId>jax-rs-ri</artifactId>
    <version>1.9.1</version>
    <type>zip</type>
</dependency>
Run Code Online (Sandbox Code Playgroud)

因为它是一个拉链,你可能想打开包装.这个答案可能会有所帮助:解压缩maven中的依赖关系

请注意,这1.9.1不是jax-rs-riMaven使用的最新版本1.10-b03.如果要强制使用它,则1.9.1必须<version>[1.9.1]</version>dependency标记内部使用.