静态编译.groovy默认使用maven

时间:2013-04-18 03:58:14

标签: maven groovy

我现在正在使用maven在我们的项目中编译.groovy

我的pom.xml是

        <plugin>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.1</version>
            <configuration>
                <source>1.6</source>
                <target>1.6</target>
                <encoding>UTF-8</encoding>
                <compilerId>groovy-eclipse-compiler</compilerId>
                <verbose>true</verbose>
                <compilerArguments>
                    <configscript>/tmp/aa.groovy</configscript>
                </compilerArguments>
                <fork>true</fork>
            </configuration>
            <dependencies>
                <dependency>
                    <groupId>org.codehaus.groovy</groupId>
                    <artifactId>groovy-eclipse-compiler</artifactId>
                    <version>2.7.0-01</version>
                </dependency>
                <dependency>
                    <groupId>org.codehaus.groovy</groupId>
                    <artifactId>groovy-all</artifactId>
                    <version>${groovy.version}</version>
                </dependency>
            </dependencies>
        </plugin>

是否有像

这样的东西

http://groovy.codehaus.org/Advanced+compiler+configuration

groovyc -configscript src / conf / config.groovy src / main / groovy / MyClass.groovy

所以我可以默认以静态方式编译我的groovy

2 个答案:

答案 0 :(得分:1)

您可以使用Ant

        <plugin>
            <artifactId>maven-antrun-plugin</artifactId>
            <executions>
                <execution>
                    <id>compile</id>
                    <phase>compile</phase>
                    <configuration>
                        <tasks>
                            <mkdir dir="${basedir}/src/main/groovy"/>
                            <taskdef name="groovyc" classname="org.codehaus.groovy.ant.Groovyc">
                                <classpath refid="maven.compile.classpath"/>
                            </taskdef>
                            <mkdir dir="${project.build.outputDirectory}"/>
                            <groovyc destdir="${project.build.outputDirectory}" 
                                     srcdir="${basedir}/src/main/groovy/" 
                                     listfiles="true"
                                     configscript="${basedir}/src/config/config.groovy">
                                <classpath refid="maven.compile.classpath"/>
                            </groovyc>
                        </tasks>
                    </configuration>
                    <goals>
                        <goal>run</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>

和config.groovy

withConfig(configuration) {
   ast(groovy.transform.CompileStatic)
}

答案 1 :(得分:0)

我知道我在这里复活了一些旧线程,但是我遇到了你的问题,并且认为如果我们在GMavenPlus中做到这一点真的很酷,所以我打开了Jira并开始搞乱与它相伴。我committed这个功能的第一次传递,如果你能在我们的下一个版本之前测试它,我会很感激。为方便起见,我部署了一个新的snapshot