我正在Grails开发一个小型网页前端。它基本上是一个“超轻量级”客户端应用程序,通过JMS异步连接。
我想从Maven存储库中提取项目中的两个依赖项。它们是activemq
和acme-adapter-api
,是内部依赖项,在远程存储库中不可用。
我设置了这样的BuildConfig.groovy
( Grails 1.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 dependency-report
时,我可以看到有关acme-adapter-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")
中。所以我想:“也许它不会从本地磁盘中取出然后...”并将版本更改为BuildConfig.groovy
文件中不存在的一些有趣(1.999-SNAPSHOT)值。再次运行grails compile
时,命令超时,说无法找到该版本:
UNRESOLVED DEPENDENCIES
D:/maven-repo: unable to get resource for com/acme#acme-adapter-api;1.999-SNAPSHOT
很明显,本地依赖关系得到了解决,但不知何故在下一步中没有应用,编译......
答案 0 :(得分:5)
Grails 1.3.6已经更新了Ivy 2.2(表明它应用了https://issues.apache.org/jira/browse/IVY-938的修复),如果我指定“changing = true”,我可以获得SNAPSHOT版本的更新,如:
dependencies {
runtime ('groupId:artifactId:version-SNAPSHOT') {
changing = true
}
}
答案 1 :(得分:0)
事实证明,该工件的问题是非空缓存。虽然activemq jar文件没有被触及,但acme-adapter-api.jar实际上已多次更改,但在上述情况下没有增加maven build id 1.3。
我可以修复它,当我将内部版本号增加到1.4-SNAPSHOT ...
还有两个问题:
我将打开一个新问题来回答第2部分here