Ausbrechen Vaadin widgetset Zusammenstellung

Um Zeit zu sparen kompilieren, bin ich versucht zu brechen, aus der Zusammenstellung der widgetsets zu einem TeamCity build-Projekt von seiner eigenen, wir sind mit nexus als repo. Das Vaadin - "Basis-Projekt" ist dann enthalten in Abhängigkeit von der widgetset Artefakt zu Holen mit der aktuellen version. Ich bin mir sicher, dass dies getan wurde, vor.

Die widgetset-Projekt baut Geldstrafe in TeamCity. Die Gläser und poms sind richtig hochgeladen von nexus. Ich habe ausgepackt, die Gläser, um sicherzustellen, dass alles an seinem Platz. So weit So gut.

In eclipse, das Projekt nicht Holen das widgetset Artefakt und enthält es in seiner Bibliothek. Scheint gut zu sein.

Jedoch, wenn ich ein "mvn clean package" auf der base-Projekt von eclipse und führen Sie es auf Tomcat, bekomme ich die folgende Fehlermeldung im browser:

Failed to load the widgetset: ./VAADIN/widgetsets/com.example.somerandomapp.web.AppWidgetSet/com.example.somerandomapp.web.AppWidgetSet.nocache.js?1376642850734

Wenn ich die Projektstruktur finde ich nicht VAADIN/widgetset-Ordner in den Zielordner. Darüber hinaus wird in der maven-dependency-jar-Datei gibt es eine VAADIN-Ordner mit gwt-unitCache und eine VAADIN.widgetsets-Ordner, der die widgetset-leckereien, sowie den in der Fehlermeldung genannten Datei.

Ich nicht bekommen kann meinen Kopf herum diese. Ich bin kein maven pro, vielleicht habe ich etwas verpasst trivial es. Auch ich bin kein Vaadin pro, also kann ich auch etwas verpasst haben, nur so trivial es.

Ich hoffe wirklich, dass es jemanden da draußen, der könnte mir helfen, dieses Schiff in das Wasser. Ich würde es sehr zu schätzen!

Vaadin version: 7.1.1
Maven version: 3.0.4

Meine Basis-Projekt pom.xml (weglassen von einigen Sachen aus Platzgründen):

<dependencies>

    <!-- Some Random App - Commons -->
    <dependency>
        <groupId>com.example.somerandomapp.common</groupId>
        <artifactId>somerandomapp-common-widgetset</artifactId>
        <version>0.0.5-SNAPSHOT</version>
    </dependency>

    <!-- Vaadin -->
    <dependency>
        <groupId>com.vaadin</groupId>
        <artifactId>vaadin-server</artifactId>
        <version>${vaadin.version}</version>
    </dependency>
    <dependency>
        <groupId>com.vaadin</groupId>
        <artifactId>vaadin-client-compiled</artifactId>
        <version>${vaadin.version}</version>
    </dependency>
    <dependency>
        <groupId>com.vaadin</groupId>
        <artifactId>vaadin-client</artifactId>
        <version>${vaadin.version}</version>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>com.vaadin</groupId>
        <artifactId>vaadin-push</artifactId>
        <version>${vaadin.version}</version>
    </dependency>
    <dependency>
        <groupId>com.vaadin</groupId>
        <artifactId>vaadin-themes</artifactId>
        <version>${vaadin.version}</version>
    </dependency>

    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>javax.servlet-api</artifactId>
        <version>${javax-servlet-api.version}</version>
        <scope>provided</scope>
    </dependency>
</dependencies>

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-war-plugin</artifactId>
            <version>${maven-war-plugin.version}</version>
            <configuration>
                <failOnMissingWebXml>false</failOnMissingWebXml>
            </configuration>
        </plugin>
    </plugins>
</build>

Meine widgetset-pom (weglassen von einigen Sachen aus Platzgründen):

<!-- same Vaadin-plugins as in the "base project" -->
<!-- maven compiler, release, javadoc, deploy and source artifacts -->
    <plugin>
        <artifactId>maven-clean-plugin</artifactId>
        <version>${maven-clean-plugin.version}</version>
        <configuration>
            <filesets>
                <fileset>
                    <directory>src/main/webapp/VAADIN/widgetsets</directory>
                </fileset>
            </filesets>
        </configuration>
    </plugin>

    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-jar-plugin</artifactId>
        <version>${maven-jar-plugin.version}</version>
        <configuration>
            <failOnMissingWebXml>false</failOnMissingWebXml>
            <excludes>
                <exclude>VAADIN/widgetsets/WEB-INF/**</exclude>
            </excludes>
        </configuration>
    </plugin>

    <plugin>
        <groupId>com.vaadin</groupId>
        <artifactId>vaadin-maven-plugin</artifactId>
        <version>${vaadin-plugin.version}</version>
        <configuration>
            <extraJvmArgs>-Xmx512M -Xss1024k</extraJvmArgs>
            <!-- <runTarget>mobilemail</runTarget> -->
            <!-- We are doing "inplace" but into subdir VAADIN/widgetsets. This 
                 way compatible with Vaadin eclipse plugin. -->
            <webappDirectory>${project.build.outputDirectory}/VAADIN/widgetsets</webappDirectory>
            <hostedWebapp>${project.build.outputDirectory}/VAADIN/widgetsets</hostedWebapp>
            <noServer>true</noServer>
            <!-- Remove draftCompile when project is ready -->
            <draftCompile>false</draftCompile>
            <compileReport>true</compileReport>
            <style>OBF</style>
            <strict>true</strict>
            <runTarget>http://localhost:8080/</runTarget>
        </configuration>
        <executions>
            <execution>
                <goals>
                   <goal>clean</goal>
                    <goal>resources</goal>
                    <goal>update-theme</goal>
                    <goal>update-widgetset</goal>
                    <goal>compile-theme</goal>
                    <goal>compile</goal>
                </goals>
            </execution>
        </executions>
    </plugin>
</plugins>
<pluginManagement>
    <plugins>    
        <!--This plugin's configuration is used to store Eclipse m2e settings 
            only. It has no influence on the Maven build itself. -->
        <plugin>
            <groupId>org.eclipse.m2e</groupId>
            <artifactId>lifecycle-mapping</artifactId>
            <version>1.0.0</version>
            <configuration>
                <lifecycleMappingMetadata>
                    <pluginExecutions>
                        <pluginExecution>
                            <pluginExecutionFilter>
                                <groupId>com.vaadin</groupId>
                                <artifactId>vaadin-maven-plugin</artifactId>
                                <versionRange>[7.1.1,)</versionRange>
                                <goals>
                                    <goal>update-theme</goal>
                                    <goal>resources</goal>
                                    <goal>compile-theme</goal>
                                    <goal>update-widgetset</goal>
                                </goals>
                            </pluginExecutionFilter>
                            <action>
                                <ignore />
                            </action>
                        </pluginExecution>
                    </pluginExecutions>
                </lifecycleMappingMetadata>
            </configuration>
        </plugin>
    </plugins>
</pluginManagement>
</build>

Update:
Ich habe meine setup-MainUI Klasse wie folgt aus:

@WebServlet(value = {"/foo/*", "/VAADIN/*"} , asyncSupported = true)
@VaadinServletConfiguration(productionMode = false, ui = MainUI.class, widgetset = "com.example.somerandomapp.common.widgetset.AppWidgetSet")

Merkte ich, das hat etwas zu tun mit es und verändert es auf die richtige widgetset. Aber ich bekomme immer noch den gleichen Fehler:

Failed to load the widgetset: ./VAADIN/widgetsets/com.example.somerandomapp.common.widgetset.AppWidgetSet/com.example.somerandomapp.common.widgetset.AppWidgetSet.nocache.js?1376662202437

Nun, dieser Fehler zeigt den richtigen Pfad zu der nocache-Datei in den classpath, das macht mich sehr irritiert, denn die Datei ist da, in der lib-Ordner.
Ich hoffe, dies trifft nicht zu verwechseln Sie weiter....

Update 2:
Eigentlich ist dies ausreichend:

@WebServlet(value = "/*", asyncSupported = true)
@VaadinServletConfiguration(productionMode = false, ui = MainUI.class, widgetset = "com.example.somerandomapp.common.widgetset.AppWidgetSet")
InformationsquelleAutor Roger | 2013-08-16
Schreibe einen Kommentar