【问题标题】:How to install Grails plugins through Maven pom.xml?如何通过 Maven pom.xml 安装 Grails 插件?
【发布时间】: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 能够构建项目,成功找到所有插件依赖项。

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

【问题讨论】:

    标签: java grails plugins 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 中有一些奇怪的东西?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-09-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多