]> source.dussan.org Git - vaadin-framework.git/commitdiff
Build Maven BOM for Vaadin (#17025)
authorHenri Sara <hesara@vaadin.com>
Thu, 19 Mar 2015 13:36:36 +0000 (15:36 +0200)
committerVaadin Code Review <review@vaadin.com>
Thu, 26 Mar 2015 09:38:36 +0000 (09:38 +0000)
Change-Id: I842a5f1551012744354371e1c099f6ca2360029c

all/ivy.xml
bom/build.xml [new file with mode: 0644]
bom/ivy.xml [new file with mode: 0644]
bom/vaadin-bom.pom [new file with mode: 0644]
build.xml
common.xml
ivysettings.xml

index 156588485f28d06bb073a29a7020a7d380b3caca..cea833731ad894a50ab60da10528a2ac603f154e 100644 (file)
@@ -32,6 +32,7 @@
             rev="${vaadin.version}" />
         <dependency org="com.vaadin" name="vaadin-push" rev="${vaadin.version}" />
         <dependency org="com.vaadin" name="vaadin-widgets" rev="${vaadin.version}" />
+        <dependency org="com.vaadin" name="vaadin-bom" rev="${vaadin.version}" />
 
     </dependencies>
 
diff --git a/bom/build.xml b/bom/build.xml
new file mode 100644 (file)
index 0000000..42d7303
--- /dev/null
@@ -0,0 +1,46 @@
+<?xml version="1.0"?>
+
+<project name="vaadin-bom" basedir="." default="publish-local"
+       xmlns:artifact="antlib:org.apache.maven.artifact.ant" xmlns:antcontrib="antlib:net.sf.antcontrib">
+    <description>
+        Compiles a BOM (Bill of Materials) Maven artifact
+    </description>
+    <include file="../common.xml" as="common" />
+    <include file="../build.xml" as="vaadin" />
+
+    <!-- global properties -->
+    <property name="module.name" value="vaadin-bom" />
+    <property name="result.dir" value="result" />
+
+       <target name="bom" description="Generates a BOM (Bill of Materials) pom.xml. Either for a snapshot or a release version">
+        <fail unless="result.dir" message="No result.dir parameter given" />
+        <condition property="vaadin.maven.version" value="${vaadin.version}">
+            <isset property="build.release" />
+        </condition>
+        <!-- if this wasn't already set by the condition, this is a snapshot -->
+        <property name="vaadin.maven.version" value="${vaadin.version.major}.${vaadin.version.minor}-SNAPSHOT" />
+
+        <property name="bom.xml" location="${result.dir}/lib/vaadin-bom-${vaadin.version}.pom" />
+
+        <copy file="vaadin-bom.pom" tofile="${bom.xml}" overwrite="true">
+            <filterchain>
+                <replacestring from="@vaadin.version@" to="${vaadin.maven.version}" />
+            </filterchain>
+        </copy>
+    </target>
+       
+    <target name="publish-local" depends="bom">
+       <antcall target="common.publish-local" />
+    </target>
+
+    <target name="clean">
+        <antcall target="common.clean" />
+    </target>
+    <target name="checkstyle">
+        <!-- No code in this module -->
+    </target>
+    <target name="test" depends="checkstyle">
+        <!-- No tests for this BOM.. -->
+    </target>
+
+</project>
diff --git a/bom/ivy.xml b/bom/ivy.xml
new file mode 100644 (file)
index 0000000..39abb30
--- /dev/null
@@ -0,0 +1,18 @@
+<?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-bom" revision="${vaadin.version}" />
+
+    <configurations>
+        <conf name="build" />
+    </configurations>
+    <publications>
+        <artifact type="pom" ext="pom" />
+    </publications>
+    <dependencies defaultconf="build">
+    </dependencies>
+
+</ivy-module>
diff --git a/bom/vaadin-bom.pom b/bom/vaadin-bom.pom
new file mode 100644 (file)
index 0000000..f2b482a
--- /dev/null
@@ -0,0 +1,103 @@
+<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-parent</artifactId>
+        <version>1.0.0</version>
+    </parent>
+    <groupId>com.vaadin</groupId>
+    <artifactId>vaadin-bom</artifactId>
+    <version>@vaadin.version@</version>
+    <packaging>pom</packaging>
+    <name>Vaadin Framework (Bill of Materials)</name>
+    <description>Vaadin Framework (Bill of Materials)</description>
+    <organization>
+        <name>Vaadin Ltd</name>
+        <url>http://vaadin.com</url>
+    </organization>
+    <url>http://vaadin.com</url>
+    <licenses>
+        <license>
+            <name>Apache License Version 2.0</name>
+            <distribution>repo</distribution>
+            <url>http://www.apache.org/licenses/LICENSE-2.0</url>
+        </license>
+    </licenses>
+    <scm>
+        <connection>scm:https:https://github.com/vaadin/vaadin.git</connection>
+        <developerConnection>scm:https:https://github.com/vaadin/vaadin.git</developerConnection>
+        <url>https://github.com/vaadin/vaadin</url>
+    </scm>
+    <developers>
+        <developer>
+            <id>artur</id>
+            <name>Artur Signell</name>
+            <email>artur.signell@vaadin.com</email>
+            <url>http://vaadin.com/web/artur</url>
+            <organization>Vaadin Ltd</organization>
+            <organizationUrl>http://vaadin.com/</organizationUrl>
+            <roles>
+                <role>architect</role>
+                <role>developer</role>
+                <role>team manager</role>
+            </roles>
+            <timezone>2</timezone>
+        </developer>
+        <developer>
+            <id>hesara</id>
+            <name>Henri Sara</name>
+            <email>hesara@vaadin.com</email>
+            <organization>Vaadin Ltd</organization>
+            <organizationUrl>http://vaadin.com/</organizationUrl>
+            <roles>
+                <role>developer</role>
+            </roles>
+            <timezone>2</timezone>
+        </developer>
+    </developers>
+    <dependencyManagement>
+        <dependencies>
+            <dependency>
+                <groupId>com.vaadin</groupId>
+                <artifactId>vaadin-shared</artifactId>
+                <version>@vaadin.version@</version>
+            </dependency>
+            <dependency>
+                <groupId>com.vaadin</groupId>
+                <artifactId>vaadin-server</artifactId>
+                <version>@vaadin.version@</version>
+            </dependency>
+            <dependency>
+                <groupId>com.vaadin</groupId>
+                <artifactId>vaadin-push</artifactId>
+                <version>@vaadin.version@</version>
+            </dependency>
+            <dependency>
+                <groupId>com.vaadin</groupId>
+                <artifactId>vaadin-widgets</artifactId>
+                <version>@vaadin.version@</version>
+            </dependency>
+            <dependency>
+                <groupId>com.vaadin</groupId>
+                <artifactId>vaadin-client</artifactId>
+                <version>@vaadin.version@</version>
+            </dependency>
+            <dependency>
+                <groupId>com.vaadin</groupId>
+                <artifactId>vaadin-client-compiler</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-themes</artifactId>
+                <version>@vaadin.version@</version>
+            </dependency>
+        </dependencies>
+    </dependencyManagement>
+</project>
index ee24c615297b4b5d22b41f09cfff7519a74f980b..a88892772ed61b3e5867b7ccf004bd5af7bf867d 100644 (file)
--- a/build.xml
+++ b/build.xml
                 <exclude name="build/**" />
                 <exclude name="bin/**" />
                 <exclude name="buildhelpers/**" />
+                <exclude name="all/**" />
             </fileset>
         </ivy:buildlist>
         <path id="build-path">
             <path location="buildhelpers/build.xml" />
             <path refid="ivy.build.path" />
+            <path location="all/build.xml" />
         </path>
     </target>
     <target name="clean" depends="buildorder">
index 948756005117a232d05f9256e931468f87ebec42..feb3381607cda6789a159f8c304c2cccd3863d8a 100644 (file)
@@ -9,7 +9,7 @@
     <property name="gwt.basedir" location="${vaadin.basedir}/../gwt" />
     <property file="${vaadin.basedir}/build.properties" />
 
-    <property name="modules.to.publish.to.maven" value="shared,server,client,client-compiler,client-compiled,themes,push,widgets" />
+    <property name="modules.to.publish.to.maven" value="shared,server,client,client-compiler,client-compiled,themes,push,widgets,bom" />
     <property name="modules.to.publish.to.download" value="${modules.to.publish.to.maven},all" />
 
     <ivy:settings file="${vaadin.basedir}/ivysettings.xml" />
index f1fc4d1c63861f9be8bbcd45641e924a101d1fdc..c97b6a3bfba37e0a05050babb73a6919b1661914 100644 (file)
@@ -49,6 +49,8 @@
             resolver="build-temp" />
         <module organisation="com.vaadin" name="vaadin-widgets"
             resolver="build-temp" />
+        <module organisation="com.vaadin" name="vaadin-bom"
+            resolver="build-temp" />
         <module organisation="com.vaadin" name="vaadin-liferay"
             resolver="build-temp" />
     </modules>