2

尝试通过 GMaven (Maven 3.1.1) 使用带有 Groovy 2.3 支持的 Spock,但我很难获得 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 示例一样指定了 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>

但即使当我mvn clean testSpock Example运行时,我也得到:

错误] 未能在项目 spock-example 上执行目标:无法解析项目 org.spockframework:spock-example:jar:1.0-SNAPSHOT 的依赖项:未能找到 org.spockframework:spock-core:jar:1.0-groovy-2.3 -SNAPSHOT in 已缓存在本地存储库中,直到nexus_sprn 的更新间隔已过或强制更新后才会重新尝试解析 -> [Help 1]

如果我只使用 0.7-groovy-2.0 版本,我会成功,但我想要 Groovy 2.3,因为它似乎 @CompileStatic 不适用于我在 Groovy 2.0 中的项目。

编辑:

请注意在构建失败之前发生的警告:

[警告] org.spockframework:spock-core:jar:1.0-groovy-2.3-SNAPSHOT 的 POM 丢失,没有可用的依赖信息

4

1 回答 1

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>

不确定这里是否有适当的礼仪,但除非普遍认为没有必要,否则我会将这个答案留在这里以备不时之需。

于 2014-10-28T17:37:55.433 回答