groovy++ / groovypp i maven groovy-eclipse-compiler

Groovy++ jest rozszerzeniem języka groovy powodującym użycie statycznych typów – zamiast dynamicznych. Dodatkowo wprowadza kilka ciekawych funkcji. Więcej o groovy++ przeczytasz na stronie What is Groovy++

W tym blogu chodzi jednak nie o opis groovy++ ale o to jak skompilować kod pod maven-em używając kompilatora eclipse (groovy-eclipse-compiler).

Generalnie sytuacja jest dość prosta …
1. Należy utworzyć projekt – lub zmienić pom istniejącego – aby korzystać z kompilatora eclipse. Jak to zrobić przedstawiłem we wcześniejszym wpisie: kompilacja groovy z groovy-eclipse-compiler
2. Nastpnie dodać do zależności (dependencies) wpis groovypp

<dependency>
  <groupId>org.mbte.groovypp</groupId>
  <artifactId>groovypp</artifactId>
  <version>0.9.0_1.8.2</version>
</dependency>

ważne jest aby zaimportować groovypp, a nie groovypp-all. Przy imporcie groovypp-all pojawiają się dziwne błędy kompilacji wynikające (jak mniemam) z pojawienia się oryginalnych klas groovy (zaiportowanych przez eclipse plugin) oraz zmienionych przez groovy++.

Poniżej cały pom projektu aby łatwiej było cieszyć się szybkością jaką daje groovy++ :) Wersje groovy, groovy++, eclipse-groovy-compiler są aktualne na dole utworzenia wpisu.

<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>de.jwerk.test</groupId>
    <artifactId>groovypp-test</artifactId>
    <version>1.0-SNAPSHOT</version>
    <name>Groovy++ Test by Albert Gorski at blogpl.jWerk.de</name>
    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>2.3.2</version>
                <configuration>
                    <compilerId>groovy-eclipse-compiler</compilerId>
                </configuration>
                <executions>
                    <execution>
                        <goals>
                            <goal>testCompile</goal>
                        </goals>
                    </execution>
                </executions>
                <dependencies>
                    <dependency>
                        <groupId>org.codehaus.groovy</groupId>
                        <artifactId>groovy-eclipse-compiler</artifactId>
                        <version>2.5.2-01</version>
                        <exclusions>
                            <exclusion>
                                <groupId>org.codehaus.groovy</groupId>
                                <artifactId>groovy-eclipse-batch</artifactId>
                            </exclusion>
                        </exclusions>
                    </dependency>
                    <dependency>
                        <groupId>org.codehaus.groovy</groupId>
                        <artifactId>groovy-eclipse-batch</artifactId>
                        <version>1.8.2-03</version>
                    </dependency>
                </dependencies>
            </plugin>

            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>build-helper-maven-plugin</artifactId>
                <version>1.6</version>
                <executions>
                    <execution>
                        <id>add-source</id>
                        <phase>generate-sources</phase>
                        <goals>
                            <goal>add-source</goal>
                        </goals>
                        <configuration>
                            <sources>
                                <source>src/main/groovy</source>
                            </sources>
                        </configuration>
                    </execution>
                    <execution>
                        <id>add-test-source</id>
                        <phase>generate-test-sources</phase>
                        <goals>
                            <goal>add-test-source</goal>
                        </goals>
                        <configuration>
                            <sources>
                                <source>src/test/groovy</source>
                            </sources>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

    <dependencies>
        <dependency>
            <groupId>org.codehaus.groovy</groupId>
            <artifactId>groovy-all</artifactId>
            <version>1.8.2</version>
        </dependency>
        <dependency>
            <groupId>org.mbte.groovypp</groupId>
            <artifactId>groovypp</artifactId>
            <version>0.9.0_1.8.2</version>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.8.2</version>
            <scope>test</scope>
        </dependency>
    </dependencies>
</project>

Projekt można pobrać z github: https://github.com/agorski/groovypp-test
za pomocą komendy:

git clone https://github.com/agorski/groovypp-test.git

Informacje o @albgorski

Od 1999 roku profesjonalnie zajmuję się rozwijaniem oprogramowania. Głównie Java, ale także Groovy, PHP, HTML, JavaScript oraz Adobe Flex. Fascynują mnie metody wymiany danych, ich przechowywania oraz dostępowania. Jestem WIELKIM zwolennikiem Clean Code, TDD oraz agilistą (może lepiej lean-istą). Ekosystem Java dostarcza WIELE świetnych frawework-ów i bibliotek, a społeczność miłośników języka Java jest najlepsza pod słońcem :)
Ten wpis został opublikowany w kategorii groovy, java, maven i oznaczony tagami , , , . Dodaj zakładkę do bezpośredniego odnośnika.

Możliwość komentowania jest wyłączona.