2011-11-14 35 views
3

我正在用Maven构建一个Grails项目,这是在我公司建设所需的方式。如何通过Maven pom.xml安装Grails插件?

在我的本地机器上,我以通常的方式安装了Grails插件grails install-plugin foo。当然,当项目由构建服务器上的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需要去互联网寻找插件的情况下会是什么?

编辑:

我发现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能够构建项目,成功查找所有插件依赖项。

但它仍然无法在构建服务器上工作。有任何想法吗?

回答

1

您需要使用Grails Maven插件,因此pom将随插件列表的更改而更新。看看Grails documentation describing Maven integration,尤其是关于“mavenizing”该项目的部分。

+0

你是说做'MVN org.grails:Grails的-maven-插件:1.3.2:create-pom -DgroupId = com.mycompany'?这就是我最初获得我的pom.xml的方式。你是说这个命令可以用来更新Grails插件的pom吗? –

+0

不,grails插件应该选取新安装的插件并将它们添加到构建中。你可以检查'application.properties'文件是否被检入版本控制,并且它是否包含你需要的所有插件? –

+0

'application.properties'被检入,并且它包含所有安装插件的名称和版本。 –

1

尝试加入这个依赖于你的pom.xml

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

,当你重新编译应用程序Maven会下载并安装插件

+0

谢谢@Cris!我不认为我会回到2011年的这个项目(在不同的公司),但这些信息可能会使其他人受益。 –