如何使用本地Maven存储库发布和引用Grails插件

时间:2013-12-22 21:22:15

标签: maven grails dependencies

摘要

我使用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>

但我还没有找到如何将类型添加到该依赖项的方法。

任何人都可以提供帮助吗?

0 个答案:

没有答案