2012-10-17 12 views
4

我有一个迄今用于编译没有问题的Maven项目。今天,当我运行mvn clean package -U,我得到:Maven试图下载'-sources.src'文物?

[错误]未能就项目的Myproj执行目标:无法解析项目org.myorg.myproj依赖关系:的Myproj:罐子:1.0快照:下面的文物无法解析:javax.servlet:javax.servlet-api:src:sources:3.0.1,org.eclipse.jetty:jetty-servlet:src:sources:8.1.2.v20120308,org.eclipse.jetty:jetty -server:src:sources:8.1.2.v20120308,org.eclipse.jetty:jetty-webapp:src:sources:8.1.2.v20120308,commons-io:commons-io:src:sources:2.4:找不到artifact javax.servlet:javax.servlet-api:src:sources:3.0.1 in MyRepo(http://maven.myorg.org:9001/nexus/content/repositories/myrepo/) - > [Help 1]

我试图用一个新的本地Maven仓库(rm -fr ~/.m2/repository),但没有任何区别。

为什么Maven试图找到source/src工件?任何问题可能存在的想法?

编辑:我的依赖关系(如使用mvn help:effective-pom所示)没有任何source分类器。例如,在错误消息中提到的jetty-server的依赖内容如下:

<dependency> 
    <groupId>org.eclipse.jetty</groupId> 
    <artifactId>jetty-server</artifactId> 
    <version>8.1.2.v20120308</version> 
    <scope>compile</scope> 
</dependency> 

解决方案:随着@AlessandroSantini的帮助和@布莱恩 - 摘心,我终于发现了问题。我的一个间接依赖项有<classifier>sources</classifier><type>src</type>。 (mvn help:effective-pom没有显示这些间接依赖,并mvn dependency:tree失败,出现上述错误信息,也;最终,一个grep -r 'jetty-server' ~/.m2/repository/ -C 3确定与搞砸依赖神器)

原来我自己SBT项目之一所需要的(不存在的)源工件:我使用SBT's withSources(),我应该使用sbteclipe's EclipseKeys.withSource := true来获取Eclipse中的源代码。

+1

也许你可能包含你的pom.xml? –

+0

显然它看起来像你的依赖项中有一个“src”类型和一个“sources”限定符。 –

+0

@AlessandroSantini,不确定:当我查看完整的依赖关系时,使用'mvn help:effective-pom',我没有看到任何与源限定符的依赖关系(请参阅我的编辑)。 – Hbf

回答

2

你对公共快照有任何依赖吗?我会看看mvn dependency:tree的输出,看看你是否能找到包含源的传递依赖。也许其中一个传递体已经改变,因为你最后的构建和他们搞砸了。

+0

这听起来像是一个非常有前途的曲目,谢谢Brian!现在,我正在苦于'mvn dependency:tree',它本身会失败,并且在帖子中出现相同的错误信息。 – Hbf

+0

谢谢,布莱恩,你的提示让我走上了正确的轨道(详见OP中的编辑)。 – Hbf