Grails和本地Maven依赖

rao*_*son 3 grails dependencies compilation build grails-maven

我正在Grails中开发一个小型Web前端.它基本上是一个"超轻量级"客户端应用程序,通过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'
}
Run Code Online (Sandbox Code Playgroud)

当我跑步时grails dependency-report,我可以看到这条线acme-adapter-api,例如:

acme-adapter-api by com.acme  
108 kB (0 kB downloaded, 108 kB in cache)
Run Code Online (Sandbox Code Playgroud)

当我试图跑步时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
Run Code Online (Sandbox Code Playgroud)

所以显然本地依赖关系得到了解决,但不知何故不适用于下一步,编译......

小智 5

Grails 1.3.6已经更新了Ivy 2.2(表明它应用了https://issues.apache.org/jira/browse/IVY-938的修复程序),如果我指定"更改",我可以获得SNAPSHOT版本的更新= true",如:

dependencies {
  runtime ('groupId:artifactId:version-SNAPSHOT') {
    changing = true
  }
}
Run Code Online (Sandbox Code Playgroud)