Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
创建用Groovy 1.8编写的Maven插件_Maven_Groovy_Maven Plugin_Gmaven Plugin - Fatal编程技术网

创建用Groovy 1.8编写的Maven插件

创建用Groovy 1.8编写的Maven插件,maven,groovy,maven-plugin,gmaven-plugin,Maven,Groovy,Maven Plugin,Gmaven Plugin,我正在尝试使用groovy创建一个maven插件。我想使用groovy 1.8版或更高版本 如果我使用: <groupId>org.codehaus.groovy.maven</groupId> <artifactId>gmaven-plugin</artifactId> <version>1.0-rc-4</version> 当我尝试使用我的插件时,maven根本不调用我的插件;我猜这是因为缺少插件描述符 是否有人能够使

我正在尝试使用groovy创建一个maven插件。我想使用groovy 1.8版或更高版本

如果我使用:

<groupId>org.codehaus.groovy.maven</groupId>
<artifactId>gmaven-plugin</artifactId>
<version>1.0-rc-4</version>
当我尝试使用我的插件时,maven根本不调用我的插件;我猜这是因为缺少插件描述符

是否有人能够使用groovy成功构建maven插件,其版本为1.8或更高版本


PS:我也查看了插件而不是gmaven,但我似乎总是得到上面的警告。

没错。如果您阅读,您会发现gmaven mojo是硬编码的,可以使用Groovy 1.5。这样做是为了使它能够与插件的潜在用户提供最大的兼容性(因为Groovy 1.6需要Java 5,Groovy 2.3需要Java 6)。GMaven不再真正维护了,所以不要指望它会改变(对不起)

大多数工具(如GMavenPlus Groovyc Ant任务)不支持这一点的原因是Groovy的官方模型类没有保留Javadoc(它保存Maven 2的注释式标记)。GMaven通过在内部分叉Groovy代码来解决这个问题。用于Maven的Groovy Eclipse插件不支持这一点,因为它根本不创建存根,所以Maven 2没有任何东西可以用来进行连接。有趣的是,它们也会分叉Groovy的代码,但还有其他原因

以下是您的选择:

  • 使用GMaven,但不要扩展GroovyMojo,它是硬编码为使用Groovy1.5的(我以前没有这样做过,所以我不能100%肯定它会工作)
  • Fork-GMaven并将GMaven-mojo的依赖项更改为使用您选择的Groovy
  • 使用Maven 3及其新的Java5,用您选择的或构建您的项目(我已经尝试帮助人们理解他们选择的工具)
  • 如果您选择Maven 3路线,您可能需要添加

    <skipErrorNoDescriptorsFound>true</skipErrorNoDescriptorsFound>
    
    true
    

    到您的maven插件配置。

    这令人失望:(看来在我转到Maven 3之前,我一直在使用Groovy 1.5。很抱歉,我又提了一个老问题,但是@Keegan:有没有使用GMavenPlus和Annotations方法来创建Mojos的例子?我们有使用GMaven的工作版本,但管理层不喜欢使用废弃的项目。我们想使用GMavenPlus,但我们有一头猛兽我让一个开始工作x)你可以用我的集成测试作为一个例子:。我需要找到一个更好的方法来把人们引向那里。你不是第一个问这个问题的人。也许我会在“示例”页面上链接它。@Keegan:你有没有遇到过在mojo参数注释中扩展project.basedir的问题?例如:(所以不让我使用at符号)参数(defaultValue=“${project.basedir}/src/main/resources/target.template”)字符串模板…Groovy表示需要内联constant@MattEdge只需使用单引号而不是双引号,这样就可以通过Groovy的GString扩展,并给Maven一个扩展的机会。
    [WARNING] Deprecation Alert:
    [WARNING] No mojo descriptors were found in this project which has a packaging type of maven-plugin.
    [WARNING] In future versions of the plugin tools, this will fail the build.
    [WARNING] If this project is an archetype, change the packaging type from maven-plugin to maven-archetype.
    
    <skipErrorNoDescriptorsFound>true</skipErrorNoDescriptorsFound>