Tuesday, August 30, 2011

Kolejność budowania aplikacji w GWT i odpalanie testów (maven)

Nie umiałem dobrać tytułu. Wydaje mi się mylący, ale pościk jest o tym, że warto tak skonfigurować plugin GWT do mavena, aby aplikacja była kompilowana do JS dopiero po testach.
Wiadomo, że jeśli testy nie przechodzą, to nie ma sensu budować aplikacji. Jeśli omijamy testy (bywa i tak), to opisana niżej zmiana jest przeźroczysta.

W nowszych wersjach GWT (okolice 2.1.0) plugin buduje aplikację właśnie po testach, ale we wcześniejszych domyślnie odbywa się to w fazie compile. I to jest właśnie rozwiązanie. Należy przypiąć kompilację do JS w fazie po testach, ale przed budową paczki. Jeśli spojrzymy na pełną listę faz, to jest ich kilka "pomiędzy". Ja wpiąłem się w prepare-package i osiągnąłem zamierzony efekt. Poniżej typowa konfiguracja plugina mavenowego, w której określamy fazę uruchomienia (pominąłem konfigurację plugina):

                <plugins>
                    <plugin>
                        <groupId>org.codehaus.mojo</groupId>
                        <artifactId>gwt-maven-plugin</artifactId>
                        <version>${gwt.maven.plugin.version}</version>
                        <executions>
                            <execution>
                                <phase>prepare-package</phase>
                                <goals>
                                    <goal>compile</goal>
                                </goals>
                            </execution>
                        </executions>



Dzięki temu oszczędziłem sporo czasu, bo zajmuję się projektem w którym budowanie aplikacji (8 permutacji!) zajmuje 4-5 minut. Do niedawna przy domyślnej konfiguracji najpierw kompilował się JS, a dopiero potem uruchamiały się testy. Szkoda tego czasu, tylko po to, aby w trakcie testów (które też trwają ok minuty), dowiedzieć się, że wysiłek był na marne.

No comments:

Post a Comment