SRADA-680: Port Dynamic Analyzer to Maven build
authorDmitriy Nikiforov <d.nikiforov@partner.samsung.com>
Tue, 12 Apr 2016 18:13:01 +0000 (21:13 +0300)
committergihun chang <gihun.chang@samsung.com>
Mon, 4 Jul 2016 09:42:58 +0000 (18:42 +0900)
Maven uses Tycho plugins to build and test eclipse plugins, features and
products and tycho-pomless extension automaticaly generates configurations
for subprojects based on parent pom.

Target OS, WS and architecture can be set via 'envOs', 'envWs' and 'envArch'
properties.

Build example: mvn -DenvOs=linux -DenvWs=gtk -DenvArch=x86_64 package

Changes:

 * dynamicanalyzer.product with its resources was moved to separate project
   'org.tizen.dynamicanalyzer.workbench.product'

 * non-exsitent dependecies were removed from 'build.properties' files

 * maven build configurations (pom.xml) for parent and product projects were
   created

 * maven extensions configuration file (.mvn/extensions.xml) was created

 * modified org.tizen.dynamicanalyzer.cli/build.xml to use new product
   directory

Used Tycho version:     0.24.0
Required Maven version: 3.3.+
Required Java version:  1.7.0

Note: If you have Java 8 installed Maven will use it instead of 7 without
explicitly defined JAVA_HOME.

Change-Id: Iad884b0ab7916f2905d08e3bf241f3afa5f91764

18 files changed:
.gitignore
.mvn/extensions.xml [new file with mode: 0644]
org.tizen.dynamicanalyzer.appearance/build.properties
org.tizen.dynamicanalyzer.common/build.properties
org.tizen.dynamicanalyzer.widgets/build.properties
org.tizen.dynamicanalyzer.workbench.feature/build.properties
org.tizen.dynamicanalyzer.workbench.product/.project [new file with mode: 0644]
org.tizen.dynamicanalyzer.workbench.product/about.ini [moved from org.tizen.dynamicanalyzer.workbench/about.ini with 100% similarity]
org.tizen.dynamicanalyzer.workbench.product/about.mappings [moved from org.tizen.dynamicanalyzer.workbench/about.mappings with 100% similarity]
org.tizen.dynamicanalyzer.workbench.product/about.properties [moved from org.tizen.dynamicanalyzer.workbench/about.properties with 100% similarity]
org.tizen.dynamicanalyzer.workbench.product/dynamicanalyzer.product [moved from org.tizen.dynamicanalyzer.workbench/dynamicanalyzer.product with 62% similarity]
org.tizen.dynamicanalyzer.workbench.product/icons/DA_icon.icns [moved from org.tizen.dynamicanalyzer.workbench/icons/DA_icon.icns with 100% similarity]
org.tizen.dynamicanalyzer.workbench.product/icons/DA_icon.ico [moved from org.tizen.dynamicanalyzer.workbench/icons/DA_icon.ico with 100% similarity]
org.tizen.dynamicanalyzer.workbench.product/icons/linux_icon.xpm [moved from org.tizen.dynamicanalyzer.workbench/icons/linux_icon.xpm with 100% similarity]
org.tizen.dynamicanalyzer.workbench.product/icons/windows_icon.ico [moved from org.tizen.dynamicanalyzer.workbench/icons/windows_icon.ico with 100% similarity]
org.tizen.dynamicanalyzer.workbench.product/pom.xml [new file with mode: 0644]
org.tizen.dynamicanalyzer/build.properties
pom.xml [new file with mode: 0644]

index ba077a4..d567ba0 100644 (file)
@@ -1 +1,2 @@
 bin
+target
diff --git a/.mvn/extensions.xml b/.mvn/extensions.xml
new file mode 100644 (file)
index 0000000..a76c89a
--- /dev/null
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<extensions>
+    <extension>
+        <groupId>org.eclipse.tycho.extras</groupId>
+        <artifactId>tycho-pomless</artifactId>
+        <version>0.24.0</version>
+    </extension>
+</extensions>
index 3fec0c7..739e826 100644 (file)
@@ -4,7 +4,6 @@ bin.includes = META-INF/,\
                .,\
                theme/,\
                build.properties,\
-               bin/,\
                .settings/,\
                .project,\
                .classpath
index 9eb6e33..e5e97f2 100644 (file)
@@ -2,7 +2,6 @@ source.. = src/
 output.. = bin/
 bin.includes = META-INF/,\
                .,\
-               bin/,\
                build.properties,\
                .settings/,\
                .project,\
index 8c0cda4..978c751 100644 (file)
@@ -1,7 +1,6 @@
 source.. = src/
 output.. = bin/
 bin.includes = .,\
-               bin/,\
                Images/,\
                META-INF/,\
                .project,\
index 7b7773a..26d8be2 100644 (file)
@@ -1,5 +1,4 @@
 bin.includes = feature.xml,\\r
                feature.properties,\\r
-               license.html,\\r
                build.properties\r
 root = rootfiles\r
diff --git a/org.tizen.dynamicanalyzer.workbench.product/.project b/org.tizen.dynamicanalyzer.workbench.product/.project
new file mode 100644 (file)
index 0000000..98ed3b6
--- /dev/null
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+       <name>org.tizen.dynamicanalyzer.workbench.product</name>
+       <comment></comment>
+       <projects>
+       </projects>
+       <buildSpec>
+       </buildSpec>
+       <natures>
+       </natures>
+</projectDescription>
@@ -1,10 +1,10 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <?pde version="3.5"?>
 
-<product name="%DynamicAnalyzer" uid="org.tizen.dynamicanalyzer.workbench.product" id="org.tizen.dynamicanalyzer.workbench.product" application="org.tizen.dynamicanalyzer.workbench.application" version="1.0.0.qualifier" useFeatures="true" includeLaunchers="false">
+<product name="%DynamicAnalyzer" uid="org.tizen.dynamicanalyzer.workbench.product" id="org.tizen.dynamicanalyzer.workbench.product" application="org.tizen.dynamicanalyzer.workbench.application" version="1.0.0.qualifier" useFeatures="true" includeLaunchers="true">
 
    <aboutInfo>
-      <image path="/org.tizen.dynamicanalyzer.workbench/icons/about_tizen_sdk.png"/>
+      <image path="icons/about_tizen_sdk.png"/>
       <text>
          %AboutDescription
       </text>
    </configIni>
 
    <launcherArgs>
-      <programArgs>-data @noDefault</programArgs>
+      <programArgs>-data @noDefault
+      </programArgs>
       <vmArgs>-XX:MaxPermSize=64m
 -Xms256m
 -Xmx512m
 -XX:+UseParNewGC
--XX:+UseConcMarkSweepGC</vmArgs>
-      <vmArgsMac>-XstartOnFirstThread -Dorg.eclipse.swt.internal.carbon.smallFonts</vmArgsMac>
+-XX:+UseConcMarkSweepGC
+      </vmArgs>
+      <vmArgsMac>-XstartOnFirstThread -Dorg.eclipse.swt.internal.carbon.smallFonts
+      </vmArgsMac>
    </launcherArgs>
 
-   <windowImages i16="/org.tizen.dynamicanalyzer.workbench/icons/16_DA_icon.png" i32="/org.tizen.dynamicanalyzer.workbench/icons/32_DA_icon.png" i48="/org.tizen.dynamicanalyzer.workbench/icons/48_DA_icon.png" i64="/org.tizen.dynamicanalyzer.workbench/icons/64_DA_icon.png" i128="/org.tizen.dynamicanalyzer.workbench/icons/128_DA_icon.png"/>
+   <windowImages i16="icons/16_DA_icon.png" i32="icons/32_DA_icon.png" i48="icons/48_DA_icon.png" i64="icons/64_DA_icon.png" i128="icons/128_DA_icon.png"/>
 
    <launcher name="dynamic-analyzer">
-      <linux icon="/org.tizen.dynamicanalyzer.workbench/icons/linux_icon.xpm"/>
-      <macosx icon="/org.tizen.dynamicanalyzer.workbench/icons/DA_icon.icns"/>
+      <linux icon="icons/linux_icon.xpm"/>
+      <macosx icon="icons/DA_icon.icns"/>
       <solaris/>
       <win useIco="true">
-         <ico path="/org.tizen.dynamicanalyzer.workbench.feature/rootfiles/resources/icons/tizen-sdk-dynamicanalyzer.ico"/>
+         <ico path="../org.tizen.dynamicanalyzer.workbench.feature/rootfiles/resources/icons/tizen-sdk-dynamicanalyzer.ico"/>
          <bmp/>
       </win>
    </launcher>
diff --git a/org.tizen.dynamicanalyzer.workbench.product/pom.xml b/org.tizen.dynamicanalyzer.workbench.product/pom.xml
new file mode 100644 (file)
index 0000000..5b1bd34
--- /dev/null
@@ -0,0 +1,84 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project
+       xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
+       xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+
+       <modelVersion>4.0.0</modelVersion>
+
+       <parent>
+               <artifactId>dynamic-analyzer</artifactId>
+               <groupId>org.tizen.dynamicanalyzer</groupId>
+               <version>0.0.1-SNAPSHOT</version>
+               <relativePath>..</relativePath>
+       </parent>
+
+       <groupId>org.tizen.dynamicanalyzer</groupId>
+       <artifactId>org.tizen.dynamicanalyzer.workbench.product</artifactId>
+       <version>1.0.0-SNAPSHOT</version>
+       <packaging>eclipse-repository</packaging>
+
+       <properties>
+               <product-id>org.tizen.dynamicanalyzer.workbench.product</product-id>
+       </properties>
+
+       <build>
+               <plugins>
+
+                       <plugin>
+                               <artifactId>maven-resources-plugin</artifactId>
+                               <version>2.7</version>
+                               <executions>
+                                       <execution>
+                                               <id>copy-icons</id>
+                                               <phase>generate-resources</phase>
+                                               <goals>
+                                                       <goal>copy-resources</goal>
+                                               </goals>
+                                               <configuration>
+                                                       <outputDirectory>${project.build.directory}/products/${product-id}/icons/</outputDirectory>
+                                                       <nonFilteredFileExtensions>
+                                                               <nonFilteredFileExtension>ico</nonFilteredFileExtension>
+                                                               <nonFilteredFileExtension>xpm</nonFilteredFileExtension>
+                                                               <nonFilteredFileExtension>png</nonFilteredFileExtension>
+                                                       </nonFilteredFileExtensions>
+                                                       <resources>
+                                                               <resource>
+                                                                       <directory>icons</directory>
+                                                               </resource>
+                                                       </resources>
+                                               </configuration>
+                                       </execution>
+                               </executions>
+                       </plugin>
+
+                       <plugin>
+                               <groupId>org.eclipse.tycho</groupId>
+                               <artifactId>tycho-p2-director-plugin</artifactId>
+                               <version>${tycho-version}</version>
+                               <executions>
+                                       <execution>
+                                               <id>create-product-distributions</id>
+                                               <goals>
+                                                       <goal>materialize-products</goal>
+                                                       <goal>archive-products</goal>
+                                               </goals>
+                                       </execution>
+                               </executions>
+                               <configuration>
+                                       <products>
+                                               <product>
+                                                       <id>${product-id}</id>
+                                                       <rootFolder>da</rootFolder>
+                                               </product>
+                                       </products>
+                               </configuration>
+                       </plugin>
+
+               </plugins>
+       </build>
+
+       <reporting>
+               <plugins />
+       </reporting>
+
+</project>
index db5edff..23fd095 100644 (file)
@@ -1,12 +1,10 @@
 source.. = src/\r
 output.. = bin/\r
 bin.includes = .,\\r
-               bin/,\\r
                plugin.xml,\\r
                META-INF/,\\r
                plugin.properties,\\r
                build.properties,\\r
-               Link/,\\r
                .settings/,\\r
                .project,\\r
                .classpath,\\r
diff --git a/pom.xml b/pom.xml
new file mode 100644 (file)
index 0000000..927783f
--- /dev/null
+++ b/pom.xml
@@ -0,0 +1,80 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project
+       xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
+       xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+
+       <modelVersion>4.0.0</modelVersion>
+       <groupId>org.tizen.dynamicanalyzer</groupId>
+       <artifactId>dynamic-analyzer</artifactId>
+       <version>0.0.1-SNAPSHOT</version>
+       <packaging>pom</packaging>
+
+       <modules>
+               <module>org.tizen.common</module>
+               <module>org.tizen.common.sdblib</module>
+               <module>org.tizen.dynamicanalyzer</module>
+               <module>org.tizen.dynamicanalyzer.appearance</module>
+               <module>org.tizen.dynamicanalyzer.common</module>
+               <module>org.tizen.dynamicanalyzer.splash</module>
+               <module>org.tizen.dynamicanalyzer.widgets</module>
+               <module>org.tizen.dynamicanalyzer.workbench</module>
+               <module>org.tizen.dynamicanalyzer.workbench.feature</module>
+               <module>org.tizen.dynamicanalyzer.workbench.product</module>
+       </modules>
+
+       <repositories>
+               <repository>
+                       <id>eclipse-indigo</id>
+                       <url>http://download.eclipse.org/releases/indigo</url>
+                       <layout>p2</layout>
+               </repository>
+       </repositories>
+
+       <properties>
+               <tycho-version>0.24.0</tycho-version>
+       </properties>
+
+       <build>
+               <sourceDirectory>src</sourceDirectory>
+
+               <plugins>
+
+                       <plugin>
+                               <groupId>org.eclipse.tycho</groupId>
+                               <artifactId>tycho-maven-plugin</artifactId>
+                               <version>${tycho-version}</version>
+                               <extensions>true</extensions>
+                       </plugin>
+
+                       <plugin>
+                               <groupId>org.eclipse.tycho</groupId>
+                               <artifactId>tycho-compiler-plugin</artifactId>
+                               <version>${tycho-version}</version>
+                               <configuration>
+                                       <compilerArgument>-warn:+discouraged,forbidden</compilerArgument>
+                                       <source>1.7</source>
+                                       <target>1.7</target>
+                               </configuration>
+                       </plugin>
+
+                       <plugin>
+                               <groupId>org.eclipse.tycho</groupId>
+                               <artifactId>target-platform-configuration</artifactId>
+                               <version>${tycho-version}</version>
+                               <configuration>
+                                       <environments>
+                                               <environment>
+                                                       <os>${envOs}</os>
+                                                       <ws>${envWs}</ws>
+                                                       <arch>${envArch}</arch>
+                                               </environment>
+                                       </environments>
+                               </configuration>
+                       </plugin>
+
+               </plugins>
+       </build>
+
+</project>
+
+