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

Posted

技术标签:

【中文标题】如何通过 Maven pom.xml 安装 Grails 插件?【英文标题】:How to install Grails plugins through Maven pom.xml? 【发布时间】:2011-12-28 21:09:04 【问题描述】:

我正在使用 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 能够构建项目,成功找到所有插件依赖项。

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

【问题讨论】:

【参考方案1】:

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

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

当您重新编译您的应用程序时,maven 将下载并安装插件

【讨论】:

谢谢@Cris!我不认为我会在 2011 年回到这个项目(在另一家公司),但这些信息可能会让其他人受益。【参考方案2】:

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

【讨论】:

你是说要做mvn org.grails:grails-maven-plugin:1.3.2:create-pom -DgroupId=com.mycompany吗?这就是我最初获得 pom.xml 的方式。你是说同样的命令可以用来更新 Grails 插件的 pom 吗? 不,grails 插件应该选择新安装的插件并将它们添加到构建中。您能否检查application.properties 文件是否已签入版本控制以及它是否包含您需要的所有插件? application.properties 已签入,其中包含所有已安装插件的名称和版本。 我讨厌“为我工作”的答案,但即使没有手动指定插件,它也应该可以工作。所以也许你应该检查构建服务器上的 Maven 安装?也许它在不同的版本中或在 ~/.m2/settings.xml 中有一些奇怪的东西?

以上是关于如何通过 Maven pom.xml 安装 Grails 插件?的主要内容,如果未能解决你的问题,请参考以下文章

如何通过 Maven2 pom.xml 获取 Hibernate + javax.persistence

myeclipse 10安装maven后,pom.xml文件报错,改如何解决?

Maven安装与使用

Maven 教程— Maven之pom.xml文件简单说明

maven如何继承父工程的依赖关系

如何根据pom.xml文件下载jar包