On 06/21/2016 11:41 PM, Mr Andersson wrote:


On 06/21/2016 10:55 PM, Jochen Theodorou wrote:
[...]
The problem with the ANT task is that I don't think I can set classpath argumetns to the actual so passing the config location is a problem that
needs be resolved. Not that easy with maven.

I am actually not quite sure what you mean with "I don't think I can set classpath arguments to the actual". http://docs.groovy-lang.org/2.4.7/html/api/org/codehaus/groovy/ant/Groovyc.html shows some usages in pure ant, that also define a classpath, plus the config script is just another argument on the task... in your maven versions you had <classpath refid="maven.compile.classpath"/>, so I guess the classpath problem is a solved one? As I said, I don“t fully understand what you mean..

yes, this was enough!

            <plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
                <version>1.8</version>
                <executions>
                    <execution>
                        <id>groovyc-compile</id>
                        <phase>compile</phase>
                        <configuration>
                            <target>
<taskdef name="groovyc" classname="org.codehaus.groovy.ant.Groovyc"> <classpath refid="maven.compile.classpath"/>
                                </taskdef>
                            </target>

                        </configuration>
                        <goals>
                            <goal>run</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>


I take this back, it compiled fine but no classes were actually included in the war/jars.


*Groovy should instead provide a default GroovyStatic-2.4.4.jar* file
that enables this by default. That way everybody wins, and Groovy could
join the club of static languages and not get rejected by those that
needs to get Groovy.
>
It is also messy to set up config files for every maven module, although
I am not sure. The code in that config file is also not dynamic.
>
withConfig(configuration){ast(groovy.transform.CompileStatic)} and a
simple option -compileStatic that uses an internal version of that file
is preferable and *SIMPLER***.

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

Is not needed here.

I think a command line option is something we can do. Those config scripts are actually more powerful, in that you can freely configure the compiler in them - better than any option would be able to do. Typical use case is to define several transforms that are always applied. CompileStatic is only one among them... ut it has a very distinct use case, which is why we really should consider adding that as a standard option.

Yes, great. Then one can @CompileDynamic on demand.

I

bye Jochen


Reply via email to