Grails和本地Maven依赖关系

Grails和本地Maven依赖关系,grails,build,dependencies,compilation,grails-maven,Grails,Build,Dependencies,Compilation,Grails Maven,我正在用Grails开发一个小型web前端。它基本上是一个通过JMS异步连接的“超轻量”客户端应用程序 我想从Maven存储库中提取项目中的两个依赖项。它们是activemq和acme适配器api,是内部依赖项,在远程存储库中不可用 为了访问我的依赖项,我将BuildConfig.groovy(grails1.2M4)文件设置如下: repositories { grailsPlugins() grailsHome() mavenCentral() mavenRe

我正在用Grails开发一个小型web前端。它基本上是一个通过JMS异步连接的“超轻量”客户端应用程序

我想从Maven存储库中提取项目中的两个依赖项。它们是
activemq
acme适配器api
,是内部依赖项,在远程存储库中不可用

为了访问我的依赖项,我将
BuildConfig.groovy
grails1.2M4)文件设置如下:

repositories {
    grailsPlugins()
    grailsHome()
    mavenCentral()
    mavenRepo('D:/maven-repo')
} dependencies {
    compile 'org.apache.activemq:apache-activemq:4.1.1'
    compile 'com.acme:acme-adapter-api:1.3-SNAPSHOT'
}
当我运行
grails依赖关系报告
时,我可以看到这一行关于
acme适配器api的内容,例如:

acme-adapter-api by com.acme  
108 kB (0 kB downloaded, 108 kB in cache)
当我尝试运行
grails compile
时,我并不幸运,因为它随后抱怨它无法解析
com.acme
组中的类

有趣的是,
activemq
依赖项似乎不是问题

不同之处在于acme依赖项不在
mavenCentral()
中,而只在
mavenRepo(“D:/maven repo”)
中。所以我想:“也许它不是从本地磁盘上取的…”并将版本更改为一些有趣的(1.999-SNAPSHOT)值,该值在
BuildConfig.groovy
文件中不存在。再次运行
grails compile
时,命令超时,表示找不到版本:

UNRESOLVED DEPENDENCIES
D:/maven-repo: unable to get resource for com/acme#acme-adapter-api;1.999-SNAPSHOT

很明显,本地依赖性得到了解决,但不知何故没有在下一步编译中应用…

结果证明,问题是工件的非空缓存。虽然activemqjar文件未被触及,但实际上acme-adapter-api.jar已被多次更改,但在上述情况下没有增加maven构建id 1.3

我可以修复它,当我把版本号增加到1.4-SNAPSHOT

还有两个问题:

  • maven契约不是出于完全相同的原因总是获取快照版本吗
  • 如何强制清空缓存?它在哪里

  • 我将打开一个新问题来回答第2部分,Grails 1.3.6已经用Ivy 2.2进行了更新(这表明它应用了一个补丁),如果我指定“changing=true”,我可以获得快照版本的更新,如下所示:


    我也遇到了同样的问题。第一次之后不会重新加载快照依赖项。这是开发过程中的一个重大问题。:/吼叫声
    dependencies {
      runtime ('groupId:artifactId:version-SNAPSHOT') {
        changing = true
      }
    }