摘要
我使用Grails 2.3.4创建了两个插件A和B,其中B是A插件使用的插件。我在应用程序中使用A插件时出错。
详细
当我运行以下命令时,对于插件B,它成功地将插件发布到本地maven存储库。我可以在〜/ .m2 / ...文件夹中看到它。
~plugin-b: grails maven-install
然后我用插件A添加对插件B的引用,所以我在插件A中添加对BuildConfig的引用:
plugins {
compile "com.test.plugins:b:1.0.0-SNAPSHOT"
}
现在,我想,我应该能够运行下一个命令,并且应该将插件发布到本地maven存储库,但我得到了错误:
~plugin-a: grails maven-install
| Plugin packaged grails-a-1.0.0-SNAPSHOT.zip
| Generating POM file.....
| Error Could not find artifact com.test.plugins:b:jar:1.0.0-SNAPSHOT (scope: compile) (Use --stacktrace to see the full trace)
| POM generated: //dependencies/dependencies_A_plugin/target/pom.xml...
Maven install complete.
这是生成的POM文件:
// pom header
<artifactId>a</artifactId>
<packaging>zip</packaging>
<version>1.0.0-SNAPSHOT</version>
<name>A</name>
<description>Brief summary/description of the plugin.
</description>
<url>http://grails.org/plugin/a</url>
<developers>
<developer>
<name>Your name</name>
</developer>
</developers>
<dependencies>
<dependency>
<groupId>com.test.plugins</groupId>
<artifactId>b</artifactId>
<version>1.0.0-SNAPSHOT</version>
<scope>compile</scope>
</dependency>
... just ending tags
实际上,插件A也已发布到本地Maven存储库,但它可能已损坏,因为当我创建一个Grails应用程序并在BuildConfig中添加对A插件的引用时,我甚至无法启动它应用。
~ grails
| Error Resolve error obtaining dependencies: Could not find artifact com.test.plugins:b:jar:1.0.0-SNAPSHOT (Use --stacktrace to see the full trace)
| Error Could not find artifact com.test.plugins:b:jar:1.0.0-SNAPSHOT
所以,应用程序找到了一个插件,但没有找到B插件,它是由A插件引用的。对我来说,A插件的本地Maven存储库中生成的POM文件似乎存在问题。可能缺少:
<type>zip</type>
但我还没有找到如何将类型添加到该依赖项的方法。
任何人都可以提供帮助吗?