尝试使用Spock通过GMaven(Maven 3.1.1)和Groovy 2.3支持,我很难获得SNAPSHOT依赖。即使我尝试运行具有类似依赖关系的Spock Example项目,我似乎也有同样的错误。
<dependency>
<groupId>org.spockframework</groupId>
<artifactId>spock-core</artifactId>
<version>1.0-groovy-2.3-SNAPSHOT</version>
<scope>test</scope>
</dependency>
我有像Spock Example一样指定的SNAPSHOT存储库:
<repositories>
<!-- Only required if a snapshot version of Spock is used -->
<repository>
<id>spock-snapshots</id>
<url>http://oss.sonatype.org/content/repositories/snapshots/</url>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
但即使我为Spock Example运行mvn clean test
,我也会得到:
错误]无法在项目spock上执行目标 - 示例:无法解析项目org.spockframework的依赖项:spock-example:jar:1.0-SNAPSHOT:找不到org.spockframework:spock-core:jar:1.0- groovy-2.3-SNAPSHOT in缓存在本地存储库中,在nexus_sprn的更新间隔过去或强制更新之前,不会重新尝试解析 - &gt; [帮助1]
如果我只使用0.7-groovy-2.0版本,但是我想要Groovy 2.3,因为看起来@CompileStatic在我的Groovy 2.0项目中无效。
编辑:
注意在构建失败之前发生警告:
[警告] org.spockframework的POM:spock-core:jar:缺少1.0-groovy-2.3-SNAPSHOT,没有依赖信息
答案 0 :(得分:0)
因此,根据Niederwiesser先生的评论,我发现当前项目所需的settings.xml使用的镜像不知道Spock SNAPSHOT的位置。除了重新配置我公司的代理设置外,我还必须在全局settings.xml
中执行以下操作,以使其不使用镜像。
<mirrors>
<mirror>
<id>nexus_sprn</id>
<mirrorOf>*,!nexus_public,!project-lib-dir,!spock-snapshots</mirrorOf>
<url>MIRROR_URL_REMOVED</url>
</mirror>
</mirrors>
...
<repository>
<id>spock-snapshots</id>
<url>http://oss.sonatype.org/content/repositories/snapshots/</url>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
这里不确定礼仪是否正确,但我将在此留下这个答案以供将来使用,除非普遍的共识是不必要的。