标签: gmaven-plugin

Maven使用gmaven-plugin编译混合Java + Groovy 1.7项目

根据前两个答案:maven dependencies groovy.我正在尝试使用来自org.codehaus.gmaven的GMaven-plugin,使用Maven编译混合Java 6 + Groovy项目.直到昨天我们使用的是旧1.6.0版本的Groovy(在我们最终完成它之后从未改变它),但由于1.7.0现在稳定,我认为我们会改用它.

如果只是那么简单......我现在遇到的问题似乎有两个方面:

  • Groovy 1.6以某种方式仍然被选为默认值.(如下面的stacktrace中所示)
  • groovy:generateStubs因构建错误而停止:意外节点:节点[7:1,64,注释]

有谁知道如何解决上述两个问题,或者可以提供一个工作pom来编译与Maven Java 6代码混合的Groovy 1.7代码?

使用gmaven/groovy.maven/groovy.maven.gmaven编译旧版本的Groovy时,有很多令人困惑/矛盾/过时的文档,现在真的没有帮助.

作为参考,这是我的pom.xml和Maven -e输出的一部分:

<dependencies>
    <dependency>
        <groupId>org.codehaus.groovy</groupId>
        <artifactId>groovy-all</artifactId>
        <version>1.7.0</version>
    </dependency>
</dependencies>
<build>
    <plugins>
        <plugin>
            <groupId>org.codehaus.gmaven</groupId>
            <artifactId>gmaven-plugin</artifactId>
            <version>1.2</version>
            <dependencies>
                <dependency>
                    <groupId>org.codehaus.gmaven.runtime</groupId>
                    <artifactId>gmaven-runtime-1.7</artifactId>
                    <version>1.2</version>
                </dependency>
                <dependency>
                    <groupId>org.codehaus.groovy</groupId>
                    <artifactId>groovy-all</artifactId>
                    <version>1.7.0</version>
                </dependency>
            </dependencies>
            <executions>
                <execution>
                    <goals>
                        <goal>generateStubs</goal>
                        <goal>compile</goal>
                        <goal>generateTestStubs</goal>
                        <goal>testCompile</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>
Run Code Online (Sandbox Code Playgroud)

堆栈跟踪:

[INFO] ------------------------------------------------------------------------
[INFO] Building Client
[INFO]    task-segment: [clean, package]
[INFO] ------------------------------------------------------------------------
[INFO] [clean:clean {execution: …
Run Code Online (Sandbox Code Playgroud)

java groovy compilation maven gmaven-plugin

32
推荐指数
2
解决办法
2万
查看次数

maven编译groovy

我有一些情况,我的一些groovy代码引用我的java文件,但我也有不同的java文件引用相同的groovy代码.当试图在Maven来编译,我要么需要Java之前或之后编译Groovy和不会真正起作用,因为Groovy代码依赖于一些java文件,和不同的Java文件依赖于Groovy代码.有没有办法处理这种依赖?

java groovy dependencies maven-2 gmaven-plugin

12
推荐指数
2
解决办法
8783
查看次数

如何将自定义构建的jar文件注册为maven主要工件?

我有一个项目希望提供一个jar文件:

<packaging>jar</packaging>
Run Code Online (Sandbox Code Playgroud)

但jar是以自定义方式构建的,因此使用jar:jar完成的默认包装已被禁用

<plugin>
  <artifactId>maven-jar-plugin</artifactId>
  <version>2.3.2</version>
  <executions>
    <execution>
      <id>default-jar</id>
      <phase>none</phase>
    </execution>
  </executions>
</plugin>
Run Code Online (Sandbox Code Playgroud)

但是当我想要应用阴影时:在现有的罐子上涂上阴影我会收到错误

项目主要工件不存在.

我假设maven不知道我的自定义工具创建的.jar文件.如何让它知道,因为antrun attachArtifact不起作用

<attachartifact file="./bin/classes.jar" classifier="" type="jar"/>
Run Code Online (Sandbox Code Playgroud)

我得到的错误是

发生了Ant BuildException:org.apache.maven.artifact.InvalidArtifactRTException:对于工件{:jar}:附加工件必须具有与其对应的主工件不同的ID.

所以这不是注册主工件的方法......有没有(没有编写自定义java插件)?

谢谢,卢卡斯

jar maven gmaven-plugin maven-antrun-plugin

11
推荐指数
1
解决办法
5172
查看次数

GroovyDoc作为Maven插件

是否有可以使用的maven插件GroovyDoc,最好是作为报告使用?

我猜GMaven是一个值得一看的地方,但是文档是古老的(1.0,而当前版本是1.3),GMaven插件没有任何适合你的mojo:

mvn help:describe -DgroupId=org.codehaus.gmaven -DartifactId=gmaven-plugin
Run Code Online (Sandbox Code Playgroud)

这个插件有9个目标:

groovy:compile
描述:编译Groovy源代码.

groovy:console
描述:启动Groovy GUI控制台.

groovy:execute
描述:执行Groovy脚本.

groovy:generateStubs
描述:从Groovy源生成Java存根.

groovy:generateTestStubs
描述:从Groovy测试源生成Java存根.

groovy:help
说明:显示有关gmaven-plugin的帮助信息.
调用
mvn groovy:help -Ddetail=true -Dgoal=<goal-name>
以显示参数详细信息.

groovy:providers
说明:显示有关配置和选择的Groovy运行时提供程序的信息.

groovy:shell
描述:启动Groovy Shell(又名.groovysh).

groovy:testCompile
描述:编译Groovy测试源.

那么有没有人有任何指向maven groovydoc插件的指针?谷歌没有提出任何有意义的事情.

groovy maven-2 maven gmaven-plugin groovydoc

8
推荐指数
2
解决办法
2499
查看次数

Groovy文件无法在Intellij IDEA中编译

我有maven项目机智java和groovy测试.在命令行maven编译中,所有测试都在运行,但在我的IDEA项目(由"AutoImport maven projects"自动创建)中,IDEA将groovy文件复制到/ target/test-classes而不编译它们.

我的gmaven插件看起来像

    <plugin>
                <groupId>org.codehaus.gmaven</groupId>
                <artifactId>gmaven-plugin</artifactId>
                <version>1.3</version>
                <executions>
                    <execution>
                        <goals>
                            <goal>generateStubs</goal>
                            <goal>compile</goal>
                            <goal>generateTestStubs</goal>
                            <goal>testCompile</goal>
                        </goals>
                        <configuration>
                            <providerSelection>1.7</providerSelection>
                        </configuration>
                    </execution>
                </executions>
                <dependencies>
                    <dependency>
                        <groupId>org.codehaus.groovy</groupId>
                        <artifactId>groovy-all</artifactId>
                        <version>${groovy.version}</version>
                    </dependency>
                </dependencies>
            </plugin>
Run Code Online (Sandbox Code Playgroud)

groovy intellij-idea maven gmaven-plugin

8
推荐指数
3
解决办法
2万
查看次数

GMaven插件出错

每当我执行gmaven插件时,我都会遇到以下问题

org.apache.maven.lifecycle.LifecycleExecutionException: Internal error in the plugin manager executing goal 'org.codehaus.groovy.maven:gmaven-plugin:1.0-rc-5:generateStubs': Mojo execution failed.

我的POM的相关部分如下.有什么想法?

<plugin>
    <groupId>org.codehaus.groovy.maven</groupId>
    <artifactId>gmaven-plugin</artifactId>
    <version>1.0-rc-5</version>
    <executions>
        <execution>
            <goals>
                <goal>generateStubs</goal>
                <goal>compile</goal>
                <goal>generateTestStubs</goal>
                <goal>testCompile</goal>
            </goals>
            <configuration>
                <sources>
                    <fileset>
                        <directory>${project.build.sourceDirectory}</directory>
                        <includes>
                            <include>**/*.groovy</include>
                        </includes>
                        <directory>${project.build.testDirectory}</directory>
                        <includes>
                            <include>**/*.groovy</include>
                        </includes>
                    </fileset>
                </sources>
            </configuration>
        </execution>
    </executions>
</plugin>
Run Code Online (Sandbox Code Playgroud)

eclipse groovy maven-2 maven-plugin gmaven-plugin

6
推荐指数
1
解决办法
3788
查看次数

gmaven替代?

我们有几十个带有maven构建和eclipse作为IDE的java项目.现在我想在这些项目中添加对groovy的支持,所以我不可避免地要使用gmaven插件进行集成.不幸的是,gmaven现在似乎已经放弃了(没有网站更新,JIRA几乎没有任何活动).

考虑到groovy,maven和eclipse是成熟的软件,混合的java/groovy项目并不罕见,我希望有一个可靠的集成解决方案.我知道有些人将他们的构建移动到gradle,但我不愿意为我们的项目添加常规支持而做出如此重大的改变.

那么你们其他人如何处理maven/eclipse环境中的混合groovy/java项目呢?groovy社区推荐的工具链是什么?

注意:我在某种程度上能够通过JIRA的一些源代码修复得到gmaven使用groovy 1.8,但我不认为这是未来的可靠策略.

eclipse groovy maven gmaven-plugin

6
推荐指数
1
解决办法
1222
查看次数

如何获取Groovy生成的Java源代码

我们在Groovy中有一些遗留代码,我们想从应用程序中删除Groovy,因此,我们需要获取使用gmaven插件后生成的Java源代码。

基本上,换句话说,我正在动态生成新类(使用gmaven Groovy maven插件),并且我希望能够获取此类生成类的Java源代码。

我研究了一下,可以看到此插件的唯一目标是

<goal>generateStubs</goal>
<goal>compile</goal>
<goal>generateTestStubs</goal>
<goal>testCompile</goal>
Run Code Online (Sandbox Code Playgroud)

我看不到任何目标可以让您获得完全实现的Java源代码,存根代码对我们来说还不够,因为我们需要最终的实现源代码来摆脱Groovy。

java groovy dynamically-generated gmaven-plugin

5
推荐指数
1
解决办法
5060
查看次数

gmaven插件:如何在pom.xml中为外部groovy脚本设置属性

我正在通过pom.xml中的gmaven插件运行外部groovy脚本.外部脚本是'myscript.groovy'.

我想通过maven pom.xml [即插件'gmaven-plugin'执行内部]为myscript.groovy提供一些参数/参数; 但无法这样做..

我尝试过使用; 但不确定如何在groovy脚本中检索其值.简单地调用properties.get不会给出属性值.

pom文件的快照:

<plugin>
                    <groupId>org.codehaus.gmaven</groupId>
                    <artifactId>gmaven-plugin</artifactId>
                    <executions>
                        <execution>
                            <id>generate-resources-execute-groovyscript</id>
                            <phase>generate-resources</phase>
                            <goals>
                                <goal>execute</goal>
                            </goals>
                            <configuration>
                                <properties>
                                    <property>
                                        <name>installation.dir</name>
                                        <value>${installation.dir}</value>
                                    </property>
                                </properties>
                                <source>${pom.basedir}/src/main/groovy/configure.groovy</source>
                            </configuration>
                        </execution>
                    </executions>
                </plugin>
Run Code Online (Sandbox Code Playgroud)

不确定如何在'configure.groovy'脚本中检索'installation.dir'属性的值.

在这方面的任何暗示将是有用的..谢谢

groovy maven gmaven-plugin

5
推荐指数
1
解决办法
3679
查看次数

你如何将args传递给gmaven groovy:执行?

我需要将一些args传递给通过gmaven执行的groovy脚本.如果我直接在命令行上执行脚本,我就可以做到这一点:

printArgs.groovy ...

for (a in this.args) {
  println("Argument: " + a)
}
Run Code Online (Sandbox Code Playgroud)

命令...

$groovy printArgs.groovy fe fi fo fum 
Run Code Online (Sandbox Code Playgroud)

输出...

Argument: fee
Argument: fi
Argument: fo
Argument: fum
Run Code Online (Sandbox Code Playgroud)

虽然使用mvn groovy:execute,我无法看到如何通过插件传递这些args.理想情况下,我想在插件配置中设置一些默认参数,但是当我执行命令时能够覆盖它们.如果可能的话,能够将它们作为named-args传递也会很好.

<plugin>
    <groupId>org.codehaus.gmaven</groupId>
    <artifactId>gmaven-plugin</artifactId>
    <version>1.3</version>
    <configuration>
        <source>${pom.basedir}/src/main/resources/printArgs.groovy</source>
    </configuration>
</plugin>
Run Code Online (Sandbox Code Playgroud)

插件文档有点稀缺(也过时).我看到有一个'属性'可选参数,但我不认为这是用于此目的(或者如果它是,我不能让它工作!).

干杯:)

parameters groovy args maven gmaven-plugin

4
推荐指数
1
解决办法
3946
查看次数