]> source.dussan.org Git - vaadin-framework.git/commitdiff
Build widgets with maven
authorelmot <elmot@vaadin.com>
Tue, 29 Mar 2016 14:17:08 +0000 (17:17 +0300)
committerelmot <elmot@vaadin.com>
Wed, 30 Mar 2016 10:47:18 +0000 (13:47 +0300)
Change-Id: I4ffe710a330e863737561d1c9d2e6f46c3d32c95

.classpath
.gitignore
ivysettings.xml
pom.xml
widgets/build.xml [deleted file]
widgets/ivy.xml [deleted file]
widgets/pom.xml [new file with mode: 0644]
widgets/src/com/vaadin/themes/Valo.gwt.xml [deleted file]
widgets/src/com/vaadin/themes/valoutil/BodyStyleName.java [deleted file]
widgets/src/main/java/com/vaadin/themes/valoutil/BodyStyleName.java [new file with mode: 0644]
widgets/src/main/resources/com/vaadin/themes/Valo.gwt.xml [new file with mode: 0644]

index c3dd314ce257d250ad299c56fcd7bc94c36971df..55fa7f913d625e9766d242cfefaf0025efc7859b 100644 (file)
@@ -11,7 +11,8 @@
        <classpathentry kind="src" path="shared/src/main/java"/>
        <classpathentry kind="src" path="shared/src/main/java-templates"/>
        <classpathentry kind="src" path="buildhelpers/src/main/java"/>
-       <classpathentry kind="src" path="widgets/src"/>
+       <classpathentry kind="src" path="widgets/src/main/java"/>
+       <classpathentry kind="src" path="widgets/src/main/resources"/>
        <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6">
                <attributes>
                        <attribute name="owner.project.facets" value="java"/>
index bdff76f80aece6fcacbf7095033fa916880444be..0077534c904d849c002ddd1a2dc1899af4a6cc65 100644 (file)
@@ -92,6 +92,7 @@ client-compiler/target/
 buildhelpers/target/
 client-compiled/target/
 themes/target/
+widgets/target/
 
 .sass-cache
 phantomjsdriver.log
index 3eade2f777159db91ca136e47ac12b4095f5a445..2e47a1f14fad83cd8d5b24dd54087dc2570b1ded 100644 (file)
@@ -54,7 +54,7 @@
         <module organisation="com.vaadin" name="vaadin-push"
             resolver="local-maven" />
         <module organisation="com.vaadin" name="vaadin-widgets"
-            resolver="build-temp" />
+            resolver="local-maven" />
         <module organisation="com.vaadin" name="vaadin-bom"
             resolver="local-maven" />
         <module organisation="com.vaadin" name="vaadin-liferay"
diff --git a/pom.xml b/pom.xml
index e0f62e9fda05c9e19646831703c9d120bc3cd3f4..ea2782b2fa826e86f834d70972470dfa50f8e5ed 100644 (file)
--- a/pom.xml
+++ b/pom.xml
@@ -61,6 +61,7 @@
                <module>client-compiler</module>
                <module>client-compiled</module>
                <module>themes</module>
+               <module>widgets</module>
        </modules>
 
        <build>
diff --git a/widgets/build.xml b/widgets/build.xml
deleted file mode 100644 (file)
index 2b1f30f..0000000
+++ /dev/null
@@ -1,136 +0,0 @@
-<?xml version="1.0"?>
-
-<project name="vaadin-widgets" basedir="." default="publish-local"
-    xmlns:ivy="antlib:org.apache.ivy.ant">
-    <description>
-        Widgets package for using Vaadin widgets with GWT 2.7+
-    </description>
-    <include file="../common.xml" as="common" />
-    <include file="../build.xml" as="vaadin" />
-    <include file="../gwt-files.xml" as="gwtfiles" />
-
-    <!-- global properties -->
-    <property name="module.name" value="vaadin-widgets" />
-    <property name="module.symbolic" value="com.vaadin.widgets" />
-    <property name="result.dir" value="result" />
-    <property name="result.src" value="${result.dir}/src" />
-    <property name="result.deps" value="${result.dir}/deps" />
-
-    <path id="classpath.compile.custom">
-        <fileset file="${gwt.user.jar}" />
-        <fileset file="${gwt.dev.jar}" />
-    </path>
-    <path id="classpath.test.custom" />
-
-    <union id="jar.includes">
-
-    </union>
-
-    <target name="dependencies">
-        <antcall target="common.dependencies" />
-    </target>
-
-    <target name="copysrc" depends="dependencies">
-        <delete dir="${result.deps}" />
-
-        <ivy:resolve transitive="false" type="jar"
-            conf="build-provided" />
-        <ivy:cachepath pathid="vaadin.jars" />
-        <unjar dest="${result.deps}">
-            <path refid="vaadin.jars" />
-        </unjar>
-
-        <copy todir="${result.src}">
-            <fileset dir="src" />
-            <fileset dir="${result.deps}">
-                <include name="com/vaadin/*.gwt.xml" />
-                <include name="com/vaadin/client/BrowserInfo.java" />
-                <include name="com/vaadin/client/AnimationUtil.java" />
-                <include name="com/vaadin/client/ComputedStyle.java" />
-                <include name="com/vaadin/client/DeferredWorker.java" />
-                <include name="com/vaadin/client/Profiler.java" />
-                <include name="com/vaadin/client/StyleConstants.java" />
-                <include name="com/vaadin/client/WidgetUtil.java" />
-                <include name="com/vaadin/client/ui/FocusUtil.java" />
-                <include name="com/vaadin/client/data/**/*.java" />
-                <include name="com/vaadin/client/widget/**/*.java" />
-                <include name="com/vaadin/client/Focusable.java" />
-                <include name="com/vaadin/client/widgets/*.java" />
-                <include name="com/vaadin/client/renderers/*.java" />
-                <include name="com/vaadin/client/ui/SubPartAware.java" />
-                <include name="com/vaadin/client/ui/VProgressBar.java" />
-                <include name="com/vaadin/client/ui/dd/DragAndDropHandler.java" />
-                <include name="com/vaadin/client/ui/dd/DragHandle.java" />
-                <include name="com/vaadin/client/VSchedulerImpl.java" />
-
-                <include name="com/vaadin/shared/ui/grid/*.java" />
-                <include name="com/vaadin/shared/ui/grid/**/*.java" />
-                <include name="com/vaadin/shared/util/SharedUtil.java" />
-                <include name="com/vaadin/shared/VBrowserDetails.java" />
-                <include name="com/vaadin/shared/data/sort/SortDirection.java" />
-
-                <include name="com/vaadin/sass/linker/*.java" />
-
-                <exclude name="com/vaadin/shared/**/*Rpc.java" />
-                <exclude name="com/vaadin/shared/**/*State.java" />
-            </fileset>
-        </copy>
-
-        <mkdir dir="${result.src}/com/vaadin/themes/public" />
-        <copy todir="${result.src}/com/vaadin/themes/public/valo">
-            <fileset dir="${result.deps}/VAADIN/themes/valo" />
-        </copy>
-        <copy todir="${result.src}/com/vaadin/themes/public/base">
-            <fileset dir="${result.deps}/VAADIN/themes/base" />
-        </copy>
-    </target>
-    <target name="compile" description="Compiles the module"
-        depends="dependencies,copysrc">
-        <property name="classes" location="${result.dir}/classes" />
-        <mkdir dir="${classes}" />
-
-        <javac destdir="${classes}" source="${vaadin.java.version}"
-            target="${vaadin.java.version}" debug="true" encoding="UTF-8"
-            includeantruntime="false">
-            <src path="${result.src}" />
-            <classpath refid="classpath.compile.custom" />
-            <classpath refid="vaadin.jars" />
-        </javac>
-    </target>
-
-    <target name="jar" depends="compile">
-        <property name="jar.file"
-            location="${result.dir}/lib/${module.name}-${vaadin.version}.jar" />
-        <antcall target="common.jar">
-            <param name="src" value="${result.src}" />
-            <reference refid="jar.includes" torefid="extra.jar.includes" />
-        </antcall>
-    </target>
-
-    <target name="publish-local" depends="jar">
-        <antcall target="common.sources.jar">
-            <param name="src" value="${result.src}" />
-            <reference torefid="extra.jar.includes" refid="jar.includes" />
-        </antcall>
-        <antcall target="common.javadoc.jar">
-            <param name="src" value="${result.src}" />
-        </antcall>
-
-        <antcall target="common.publish-local" />
-    </target>
-
-    <target name="clean">
-        <antcall target="common.clean" />
-    </target>
-
-    <target name="checkstyle">
-        <antcall target="common.checkstyle">
-            <param name="cs.src" location="src" />
-        </antcall>
-    </target>
-
-    <target name="test" depends="checkstyle">
-        <!-- <antcall target="common.test.run" /> -->
-    </target>
-
-</project>
diff --git a/widgets/ivy.xml b/widgets/ivy.xml
deleted file mode 100644 (file)
index 27705b3..0000000
+++ /dev/null
@@ -1,48 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ivy-module version="2.0"
-    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-    xsi:noNamespaceSchemaLocation="http://ant.apache.org/ivy/schemas/ivy.xsd"
-    xmlns:m="http://ant.apache.org/ivy/maven">
-
-    <info organisation="com.vaadin" module="vaadin-widgets"
-        revision="${vaadin.version}" />
-
-    <configurations>
-        <conf name="build" />
-        <conf name="build-provided" />
-        <conf name="ide" visibility="private" />
-        <conf name="test" />
-    </configurations>
-    <publications>
-        <artifact type="jar" ext="jar" />
-        <artifact type="source" ext="jar" m:classifier="sources" />
-        <artifact type="javadoc" ext="jar" m:classifier="javadoc" />
-        <artifact type="pom" ext="pom" />
-    </publications>
-    <dependencies defaultconf="build" defaultconfmapping="build->default">
-        <!-- API DEPENDENCIES -->
-
-        <!-- LIBRARY DEPENDENCIES (compile time) -->
-        <!-- Project modules -->
-        <dependency org="com.vaadin" name="vaadin-shared"
-            rev="${vaadin.version}" conf="build-provided,test->default">
-            <exclude type="pom" conf="test" />
-        </dependency>
-        <dependency org="com.vaadin" name="vaadin-client"
-            rev="${vaadin.version}" conf="build-provided,test->default">
-            <exclude type="pom" conf="test" />
-        </dependency>
-        <dependency org="com.vaadin" name="vaadin-client-compiler"
-            rev="${vaadin.version}" conf="build-provided,test->default">
-            <exclude type="pom" conf="test" />
-        </dependency>
-        <dependency org="com.vaadin" name="vaadin-themes"
-            rev="${vaadin.version}" conf="build-provided,test->default">
-            <exclude type="pom" conf="test" />
-        </dependency>
-        <dependency org="com.vaadin" name="vaadin-sass-compiler"
-            rev="${vaadin.sass.version}" conf="build-provided->default" />
-
-    </dependencies>
-
-</ivy-module>
diff --git a/widgets/pom.xml b/widgets/pom.xml
new file mode 100644 (file)
index 0000000..e3735a4
--- /dev/null
@@ -0,0 +1,256 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>com.vaadin</groupId>
+        <artifactId>vaadin-root</artifactId>
+        <version>7.7.0-SNAPSHOT</version>
+    </parent>
+    <artifactId>vaadin-widgets</artifactId>
+    <name>vaadin-widgets</name>
+    <packaging>jar</packaging>
+
+    <organization>
+        <name>Vaadin Ltd</name>
+    </organization>
+    <url>https://vaadin.com/</url>
+    <description>Vaadin widgets</description>
+
+    <dependencies>
+
+        <dependency>
+            <groupId>${project.groupId}</groupId>
+            <artifactId>vaadin-client</artifactId>
+            <version>${project.version}</version>
+            <scope>provided</scope>
+        </dependency>
+
+        <dependency>
+            <groupId>${project.groupId}</groupId>
+            <artifactId>vaadin-shared</artifactId>
+            <version>${project.version}</version>
+            <scope>provided</scope>
+        </dependency>
+
+        <dependency>
+            <groupId>${project.groupId}</groupId>
+            <artifactId>vaadin-client-compiler</artifactId>
+            <version>${project.version}</version>
+            <scope>provided</scope>
+        </dependency>
+
+        <dependency>
+            <groupId>${project.groupId}</groupId>
+            <artifactId>vaadin-themes</artifactId>
+            <version>${project.version}</version>
+            <scope>provided</scope>
+        </dependency>
+
+        <dependency>
+            <groupId>${project.groupId}</groupId>
+            <artifactId>vaadin-buildhelpers</artifactId>
+            <version>${project.version}</version>
+            <scope>provided</scope>
+        </dependency>
+
+
+    </dependencies>
+
+    <build>
+        <plugins>
+
+            <plugin>
+                <groupId>org.apache.felix</groupId>
+                <artifactId>maven-bundle-plugin</artifactId>
+                <extensions>true</extensions>
+                <configuration>
+                    <instructions>
+                        <Bundle-RequiredExecutionEnvironment>JavaSE-1.6</Bundle-RequiredExecutionEnvironment>
+                        <!-- Export package is handled in exec plugin -->
+                        <Export-Package></Export-Package>
+                        <Import-Package></Import-Package>
+                    </instructions>
+                </configuration>
+                <executions>
+                    <execution>
+                        <id>bundle-manifest</id>
+                        <phase>prepare-package</phase>
+                        <goals>
+                            <goal>manifest</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-dependency-plugin</artifactId>
+                <executions>
+                    <execution>
+                        <id>unpack-dependencies</id>
+                        <phase>prepare-package</phase>
+                        <goals>
+                            <goal>unpack</goal>
+                        </goals>
+                        <configuration>
+                            <artifactItems>
+                                <artifactItem>
+                                    <groupId>com.vaadin</groupId>
+                                    <artifactId>vaadin-client</artifactId>
+                                    <includes>
+                                        com/vaadin/*.gwt.xml,
+                                        com/vaadin/client/BrowserInfo*,
+                                        com/vaadin/client/AnimationUtil*,
+                                        com/vaadin/client/ComputedStyle*,
+                                        com/vaadin/client/DeferredWorker*,
+                                        com/vaadin/client/Profiler*,
+                                        com/vaadin/client/StyleConstants*,
+                                        com/vaadin/client/WidgetUtil*,
+                                        com/vaadin/client/ui/FocusUtil*,
+                                        com/vaadin/client/data/**,
+                                        com/vaadin/client/widget/**,
+                                        com/vaadin/client/Focusable*,
+                                        com/vaadin/client/widgets/**,
+                                        com/vaadin/client/renderers/**,
+                                        com/vaadin/client/ui/SubPartAware*,
+                                        com/vaadin/client/ui/VProgressBar*,
+                                        com/vaadin/client/ui/dd/DragAndDropHandler*,
+                                        com/vaadin/client/ui/dd/DragHandle*,
+                                        com/vaadin/client/VSchedulerImpl*
+                                    </includes>
+                                </artifactItem>
+
+                                <artifactItem>
+                                    <groupId>com.vaadin</groupId>
+                                    <artifactId>vaadin-shared</artifactId>
+                                    <includes>
+                                        com/vaadin/shared/ui/grid/*.*,
+                                        com/vaadin/shared/ui/grid/**/*.*,
+                                        com/vaadin/shared/util/SharedUtil*,
+                                        com/vaadin/shared/VBrowserDetails*,
+                                        com/vaadin/shared/data/sort/SortDirection*
+                                    </includes>
+                                    <excludes>
+                                        com/vaadin/shared/**/*Rpc.*,
+                                        com/vaadin/shared/**/*Rpc$*.*,
+                                        com/vaadin/shared/**/*State.*,
+                                        com/vaadin/shared/**/*State$*.*
+                                    </excludes>
+                                </artifactItem>
+                                <artifactItem>
+                                    <groupId>com.vaadin</groupId>
+                                    <artifactId>vaadin-client-compiler</artifactId>
+                                    <includes>
+                                        com/vaadin/sass/linker/*.*
+                                    </includes>
+                                </artifactItem>
+
+                                <artifactItem>
+                                    <groupId>com.vaadin</groupId>
+                                    <artifactId>vaadin-themes</artifactId>
+                                    <includes>
+                                        /VAADIN/themes/valo/**,
+                                        /VAADIN/themes/base/**
+                                    </includes>
+                                    <outputDirectory>${project.build.directory}/themes</outputDirectory>
+                                </artifactItem>
+                            </artifactItems>
+                            <outputDirectory>${project.build.directory}/classes</outputDirectory>
+                            <overWriteReleases>false</overWriteReleases>
+                            <overWriteSnapshots>true</overWriteSnapshots>
+                        </configuration>
+                    </execution>
+                </executions>
+            </plugin>
+            <plugin>
+                <artifactId>maven-resources-plugin</artifactId>
+                <executions>
+                    <!-- Copy .java files to package -->
+                    <execution>
+                        <id>copy-sources</id>
+                        <!-- here the phase you need -->
+                        <phase>prepare-package</phase>
+                        <goals>
+                            <goal>copy-resources</goal>
+                        </goals>
+                        <configuration>
+                            <outputDirectory>${project.build.directory}/classes</outputDirectory>
+                            <resources>
+                                <resource>
+                                    <directory>src/main/java</directory>
+                                    <filtering>false</filtering>
+                                </resource>
+                            </resources>
+                        </configuration>
+                    </execution>
+                    <execution>
+                        <id>copy-themes</id>
+                        <!-- here the phase you need -->
+                        <phase>prepare-package</phase>
+                        <goals>
+                            <goal>copy-resources</goal>
+                        </goals>
+                        <configuration>
+                            <outputDirectory>${project.build.directory}/classes/com/vaadin/themes/public
+                            </outputDirectory>
+                            <resources>
+                                <resource>
+                                    <directory>${project.build.directory}/themes/VAADIN/themes</directory>
+                                    <filtering>false</filtering>
+                                </resource>
+                            </resources>
+                        </configuration>
+                    </execution>
+                </executions>
+            </plugin>
+
+            <plugin>
+                <groupId>org.codehaus.mojo</groupId>
+                <artifactId>exec-maven-plugin</artifactId>
+                <version>1.4.0</version>
+                <executions>
+                    <execution>
+                        <id>generate-export-package</id>
+                        <phase>package</phase>
+                        <goals>
+                            <goal>exec</goal>
+                        </goals>
+                        <configuration>
+                            <classpathScope>compile</classpathScope>
+                            <executable>${java.home}/bin/java</executable>
+                            <arguments>
+                                <argument>-Dvaadin.version=${project.version}</argument>
+                                <argument>-DincludeNumberPackages=1</argument>
+
+                                <argument>-classpath</argument>
+                                <classpath/>
+
+                                <argument>com.vaadin.buildhelpers.GeneratePackageExports</argument>
+
+                                <argument>${project.build.directory}/${project.build.finalName}.${project.packaging}
+                                </argument>
+                                <argument>com/vaadin</argument>
+                            </arguments>
+                        </configuration>
+                    </execution>
+                </executions>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-jar-plugin</artifactId>
+                <version>2.6</version>
+                <configuration>
+                    <archive>
+                        <manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile>
+                        <index>false</index>
+                        <manifest>
+                            <addDefaultImplementationEntries>true</addDefaultImplementationEntries>
+                        </manifest>
+                    </archive>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
+
+</project>
diff --git a/widgets/src/com/vaadin/themes/Valo.gwt.xml b/widgets/src/com/vaadin/themes/Valo.gwt.xml
deleted file mode 100644 (file)
index d9e0f6a..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE module PUBLIC "-//Google Inc.//DTD Google Web Toolkit 2.7.0//EN"
-  "http://gwtproject.org/doctype/2.7.0/gwt-module.dtd">
-<module>
-    <entry-point class='com.vaadin.themes.valoutil.BodyStyleName' />
-    <source path='valoutil' />
-    <public path="public" />
-    <stylesheet src="valo/styles.css" />
-</module>
diff --git a/widgets/src/com/vaadin/themes/valoutil/BodyStyleName.java b/widgets/src/com/vaadin/themes/valoutil/BodyStyleName.java
deleted file mode 100644 (file)
index 73a01b6..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-package com.vaadin.themes.valoutil;
-
-import com.google.gwt.core.client.EntryPoint;
-import com.google.gwt.dom.client.Document;
-
-public class BodyStyleName implements EntryPoint {
-
-    @Override
-    public void onModuleLoad() {
-        Document.get().getBody().addClassName("valo");
-    }
-
-}
diff --git a/widgets/src/main/java/com/vaadin/themes/valoutil/BodyStyleName.java b/widgets/src/main/java/com/vaadin/themes/valoutil/BodyStyleName.java
new file mode 100644 (file)
index 0000000..73a01b6
--- /dev/null
@@ -0,0 +1,13 @@
+package com.vaadin.themes.valoutil;
+
+import com.google.gwt.core.client.EntryPoint;
+import com.google.gwt.dom.client.Document;
+
+public class BodyStyleName implements EntryPoint {
+
+    @Override
+    public void onModuleLoad() {
+        Document.get().getBody().addClassName("valo");
+    }
+
+}
diff --git a/widgets/src/main/resources/com/vaadin/themes/Valo.gwt.xml b/widgets/src/main/resources/com/vaadin/themes/Valo.gwt.xml
new file mode 100644 (file)
index 0000000..d9e0f6a
--- /dev/null
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE module PUBLIC "-//Google Inc.//DTD Google Web Toolkit 2.7.0//EN"
+  "http://gwtproject.org/doctype/2.7.0/gwt-module.dtd">
+<module>
+    <entry-point class='com.vaadin.themes.valoutil.BodyStyleName' />
+    <source path='valoutil' />
+    <public path="public" />
+    <stylesheet src="valo/styles.css" />
+</module>