4

我有一个 Maven 项目,到目前为止它可以毫无问题地编译。今天,当我跑步时mvn clean package -U,我得到:

[错误] 无法在项目 myproj 上执行目标:无法解析项目 org.myorg.myproj:myproj:jar:1.0-SNAPSHOT 的依赖项:无法解析以下工件: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: 找不到工件 javax.servlet:javax.servlet-api:src:sources:3.0 .1 在 MyRepo (http://maven.myorg.org:9001/nexus/content/repositories/myrepo/) -> [帮助 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 和@brian-topping 的帮助下,我终于确定了问题所在。我的一个间接依赖项有一个<classifier>sources</classifier>and <type>src</type>。(mvn help:effective-pom没有显示这些间接依赖关系,并且mvn dependency:tree也因上述错误消息而失败;最终,agrep -r 'jetty-server' ~/.m2/repository/ -C 3识别出具有混乱依赖关系的工件。)

事实证明,我自己的一个SBT项目需要(不存在的)源工件来实现其依赖项之一:我使用了SBTwithSources(),而我应该使用sbteclipeEclipseKeys.withSource := true来获取 Eclipse 中的源。

4

1 回答 1

2

你对公共快照有任何依赖吗?我会看一下的输出,mvn dependency:tree看看你是否能找到一个以某种方式包含源的传递依赖。自从您上次构建以来,可能其中一个传递性已经改变并且他们搞砸了一些东西。

于 2012-10-17T22:23:28.710 回答