Grails和本地Maven依赖关系
我正在用Grails开发一个小型web前端。它基本上是一个通过JMS异步连接的“超轻量”客户端应用程序 我想从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
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
}
}