我正在用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
会是什么?
修改
我发现pluginName
和pluginVersion
代码很有用,我已将以下执行添加到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就能够构建项目,成功找到所有插件依赖项。
但它仍然无法在构建服务器上运行。有什么想法吗?
答案 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将下载并安装插件