Grails将我的repo中的zip解释为一个插件,尽管它实际上不是一个插件

Grails将我的repo中的zip解释为一个插件,尽管它实际上不是一个插件,grails,plugins,dependencies,Grails,Plugins,Dependencies,grails项目(我构建的模块)的依赖项使用maven assembly插件输出一个zip文件,作为构建过程的一部分(供flex应用程序使用)。这个zip文件被输出到本地mvn repo,它与构建模块时输出的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/doma

grails项目(我构建的模块)的依赖项使用maven assembly插件输出一个zip文件,作为构建过程的一部分(供flex应用程序使用)。这个zip文件被输出到本地mvn repo,它与构建模块时输出的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缓存中

现在,当我尝试启动grails应用程序时,grails似乎从ivy缓存中检测到这个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依赖插件将其解压为构建过程的一部分。因此,我需要找到一种方法告诉Grails忽略它,因为它不是一个插件zip。这可能吗?

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

默认情况下,尝试使排除项可传递:

def excludes = {
    transitive = false
}

如果不进行测试,我会假设这一切都与BuildConfig.groovy的配置有关

放在依赖项块中的内容应该按原样包含,而插件块中的内容则被视为插件zip

当我对一个项目进行了错误的配置时,我偶然发现了这个问题。以下示例未经测试:)


}

Jay,你解决过这个问题吗?我现在遇到了完全相同的问题。对不起,我早就该回答这个问题了-我相信我成功地配置了maven assembly插件,将生成的ActionScript文件打包为rar而不是zip,这解决了Grails将其解释为插件的问题。我已经有一段时间没有这么做了,所以我手头没有解决办法——对不起。
dependencies {
     compile "my.project:artifact:0.1.0:zip"
}
plugins {
    compile "my.project:artifact:0.1.0" // Automatic found as a zip project