【问题标题】:Grails is interpreting a zip in my repo as a plugin, though it is not actually a pluginGrails 将我的 repo 中的 zip 解释为插件,尽管它实际上不是插件
【发布时间】:2012-02-25 10:28:03
【问题描述】:

我的 grails 项目(我构建的一个模块)的依赖项使用 maven-assembly-plugin 输出一个 zip 文件作为其构建过程的一部分(供 flex 应用程序使用)。这个 zip 输出到我的本地 mvn 存储库,与构建模块时输出的 jar 位于同一目录中,即

.m2/repository/com/mypackage/domain/1.0.0-SNAPSHOT/domain-1.0.0-SNAPSHOT.jar
.m2/repository/com/mypackage/domain/1.0.0-SNAPSHOT/domain-1.0.0-SNAPSHOT-generated-tos.zip

由于模块是我的 grails 项目中的(传递)依赖项,因此 jar 和 zip 都缓存在 ivy-cache 中

现在,当我尝试启动我的 grails 应用程序时,Grails 似乎正在从常春藤缓存中检测到这个 zip,并尝试将其作为插件安装,但由于明显的原因而失败......

| Loading Grails 2.0.0
| Configuring classpath.
| Environment set to development.....
| Error Zip ~/.grails/ivy-cache/com.mypackage/domain/zips/domain-1.0.0-SNAPSHOT-generated-tos.zip is not a valid plugin

有必要将 zip 构建到 repo,因为另一个模块使用 mvn-dependency-plugin 将其解压缩作为其构建过程的一部分。因此,我需要找到一种方法让 Grails 忽略它,因为它不是插件 zip。这可能吗?

【问题讨论】:

  • Jay,你解决过这个问题吗?我现在遇到了完全相同的问题。
  • 抱歉,我早就应该回答这个问题了 - 我相信我设法配置了 maven-assembly-plugin 以将生成的 ActionScript 文件打包为 rar 而不是 zip,这解决了 Grails 的问题将其解释为插件。我现在已经有一段时间没有这样做了,所以我手头没有解决方案 - 抱歉。

标签: grails plugins dependencies


【解决方案1】:

这是因为在 grails 中插件的打包默认是 zip,任何依赖于该格式的存档都将被视为插件。

尝试使 excludes 默认传递:

def excludes = {
    transitive = false
}

【讨论】:

    【解决方案2】:

    如果不对此进行测试,我会假设这完全与 BuildConfig.groovy 的配置有关。

    你放在 dependencies 块中的东西应该按原样包含,而插件块中的东西被认为是插件 zip。

    我在错误配置项目后偶然发现了这个问题。以下示例未经测试:)

    dependencies {
         compile "my.project:artifact:0.1.0:zip"
    }
    plugins {
        compile "my.project:artifact:0.1.0" // Automatic found as a zip project
    

    }

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-06-02
      • 1970-01-01
      • 1970-01-01
      • 2014-07-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多