如何通过Maven pom.xml安装Grails插件?

时间:2011-11-14 17:56:07

标签: java grails plugins maven

我正在用Maven建立一个Grails项目,这是我公司建立的必要方式。

在我的本地计算机上,我以通常的方式grails install-plugin foo安装了Grails插件。当然,当项目由构建服务器上的Maven构建时,它对此插件一无所知。

我已经看到以下内容对于插件在Grails的插件目录中可用的情况非常有用:

<plugin> 
  <groupId>org.grails</groupId> 
  <artifactId>grails-maven-plugin</artifactId> 
  <version>1.1</version> 
  <extensions>true</extensions> 
  <executions> 
    <execution> 
      <id>create plugins folder</id> 
      <phase>validate</phase> 
      <goals> 
        <goal>install-plugin</goal> 
      </goals> 
      <configuration> 
        <pluginUrl>${env.GRAILS_HOME}/plugins/grails-hibernate-1.1.zip</pluginUrl>                 
      </configuration> 
    </execution> 
  </executions>           
</plugin> 

但是假设插件根本不在机器上?如果Maven或Grails需要访问互联网查找插件,pluginUrl会是什么?

修改

我发现pluginNamepluginVersion代码很有用,我已将以下执行添加到grails-maven-plugin

<execution>
  <id>Hibernate plugin</id>
  <phase>validate</phase>
  <goals>
    <goal>install-plugin</goal>
  </goals>
  <configuration>
    <pluginName>hibernate</pluginName>
    <pluginVersion>1.3.7</pluginVersion>
  </configuration>
</execution>

几乎有效。如果我在新目录中检出我的代码,并删除我的插件目录的内容,Maven就能够构建项目,成功找到所有插件依赖项。

但它仍然无法在构建服务器上运行。有什么想法吗?

2 个答案:

答案 0 :(得分:1)

您需要使用Grails Maven插件,因此pom会随着插件列表的更改而更新。看一下Grails documentation describing Maven integration,特别是关于“对项目进行”整理的部分。

答案 1 :(得分:1)

尝试将此依赖项添加到您的pom.xml

<dependency>
    <groupId>org.grails.plugins</groupId>
    <artifactId>fields</artifactId>
    <version>1.3</version>
    <type>zip</type>
    <scope>runtime</scope>
</dependency>

当您重新编译App时,maven将下载并安装插件