【问题标题】:Where does Grails and GGTS store maven dependencies?Grails 和 GGTS 在哪里存储 maven 依赖项?
【发布时间】:2014-05-18 22:41:27
【问题描述】:

我在使用 Grails 2.3.7 和 eclispe GGTS 3.5.1 刷新依赖项时遇到问题

我的主要项目的BuildConfig 如下;它依赖于一个插件,acme...

grails.project.target.level = 1.6
grails.project.source.level = 1.6
grails.project.dependency.resolver = "maven"
grails.project.dependency.resolution = {

   inherits("global") 
   checksums true
   legacyResolve false 
   repositories {
      inherit false

   mavenRepo('http://...'){
      updatePolicy 'always'
   }
}

plugins {
   compile('acme:acme-core:0.10-SNAPSHOT)
}

签入acme的一些更改,然后从GGTS执行refresh-dependencies,并下载新的快照文件;用run-app确认,二进制与变化一致;到目前为止一切顺利。

检查acme 的更多更改,即使 Grails/GGTS 识别更改并下载新文件,无论我做什么,这些文件仍然是旧文件。

到目前为止我已经确认的内容:

  • 源代码管理中的插件文件肯定会更新
  • 插件版本设置为0.10-SNAPSHOT;引用相同版本的主项目
  • refresh-dependencies 肯定会下载新的 pom/zip 文件

我尝试照常删除以下文件夹:

myProject
  /taret
  /target-eclispe

${userHome}
  .grails
    /2.3.7/
      /projects

${userHome}
  .m2
     /repository
       /acme
${userHome}
  .ivy
    (empty, not used anyway)

删除后,在GGTS中执行clean + refresh-dependencies,会下载新的pom/zip文件,与SNAPSHOT版本/标签一致,但二进制还是旧的,不反映最近的提交。

我使用命令行 Grails(没有 GGTS)尝试了同样的操作,同样的废话。

我错过了什么吗?有插件的秘密文件夹吗?也许删除我的 C:/ 可以治愈这个头痛,你知道,安全吗?大声笑....坦率地说,在这一点上,我不知道还能做什么。过去我也遇到过类似的问题,但有几个cleans 和refreshes 可以解决这个问题,但这次不行。

【问题讨论】:

    标签: maven grails grails-2.0


    【解决方案1】:

    Grails 使用grails.dependency.cache.dir 系统属性来确定它的依赖缓存在哪里。默认情况下,我相信它设置为grails.dependency.cache.dir = "${userHome}/.ivy2/cache"。您可以通过在~/.grails/settings.groovy 文件中设置属性来覆盖它,或者我相信您也可以在BuildConfig.groovy 中设置它。即使您使用的是 Aether (Maven) 依赖解析器,我相信 Grails 仍会将依赖关系从您的 .m2 复制到此缓存。

    【讨论】:

    • 正如我之前提到的,${userHome}/.ivy 在我的系统上是空的,但仔细检查后发现另一个常春藤缓存 ${userHome}/.grails/2.3.7/ivy-cache,它有一个插件 acme! 的副本,所以让我们看看是否这行得通...
    猜你喜欢
    • 1970-01-01
    • 2015-05-21
    • 1970-01-01
    • 1970-01-01
    • 2015-07-03
    • 2023-03-12
    • 2011-10-19
    • 2019-12-21
    • 2012-05-27
    相关资源
    最近更新 更多