minesweeper/pom.xml
author Jaroslav Tulach <jtulach@netbeans.org>
Tue, 04 Mar 2014 09:28:20 +0100
branchteavm
changeset 91 c20135305ad2
parent 81 0d274f085dac
child 92 8697860c6af0
permissions -rw-r--r--
Adding teabrwsr profile. Use 'mvn -Pteabrwsr install' to generate ZIP with static pages powered by teavm
     1 <?xml version="1.0" encoding="UTF-8"?>
     2 <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">
     3   <modelVersion>4.0.0</modelVersion>
     4 
     5   <groupId>org.apidesign.demo</groupId>
     6   <artifactId>minesweeper</artifactId>
     7   <version>1.0-SNAPSHOT</version>
     8   <packaging>jar</packaging>
     9   <parent>
    10       <artifactId>demo</artifactId>
    11       <groupId>org.apidesign.html</groupId>
    12       <version>1.0-SNAPSHOT</version>
    13   </parent>
    14 
    15   <name>Mine Sweeper</name>
    16 
    17   <properties>
    18     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    19     <brwsr.startpage>pages/index.html</brwsr.startpage>
    20     <project.mainclass>org.apidesign.demo.minesweeper.Main</project.mainclass>
    21     <netbeans.compile.on.save>none</netbeans.compile.on.save>
    22   </properties>
    23   <build>
    24       <plugins>
    25           <plugin>
    26               <groupId>org.apache.maven.plugins</groupId>
    27               <artifactId>maven-compiler-plugin</artifactId>
    28               <version>2.3.2</version>
    29               <configuration>
    30                   <source>1.6</source>
    31                   <target>1.6</target>
    32               </configuration>
    33           </plugin>
    34           <plugin>
    35               <groupId>org.apache.maven.plugins</groupId>
    36               <artifactId>maven-jar-plugin</artifactId>
    37               <version>2.4</version>
    38               <configuration>
    39                   <archive>
    40                       <manifest>
    41                           <mainClass>${project.mainclass}</mainClass>
    42                           <addClasspath>true</addClasspath>
    43                           <classpathPrefix>lib/</classpathPrefix>
    44                       </manifest>
    45                   </archive>
    46               </configuration>
    47           </plugin>
    48           <plugin>
    49               <groupId>org.codehaus.mojo</groupId>
    50               <artifactId>exec-maven-plugin</artifactId>
    51               <version>1.2.1</version>
    52               <configuration>
    53                   <systemProperties>
    54                       <systemProperty>
    55                           <key>browser.rootdir</key>
    56                           <value>${basedir}/src/main/webapp/</value>
    57                       </systemProperty>
    58                   </systemProperties>
    59                   <mainClass>${project.mainclass}</mainClass>
    60               </configuration>
    61           </plugin>      
    62       </plugins>
    63   </build>
    64   <dependencies>
    65     <dependency>
    66         <groupId>org.netbeans.html</groupId>
    67         <artifactId>net.java.html.json</artifactId>
    68         <version>${net.java.html.version}</version>
    69     </dependency>
    70     <dependency>
    71         <groupId>org.netbeans.html</groupId>
    72         <artifactId>net.java.html.boot</artifactId>
    73         <version>${net.java.html.version}</version>
    74     </dependency>
    75     <dependency>
    76         <groupId>org.netbeans.html</groupId>
    77         <artifactId>net.java.html.sound</artifactId>
    78         <version>${net.java.html.version}</version>
    79     </dependency>
    80     <dependency>
    81         <groupId>org.netbeans.html</groupId>
    82         <artifactId>ko4j</artifactId>
    83         <version>${net.java.html.version}</version>
    84     </dependency>
    85     <dependency>
    86       <groupId>org.testng</groupId>
    87       <artifactId>testng</artifactId>
    88       <version>6.7</version>
    89       <scope>test</scope>
    90     </dependency>
    91   </dependencies>
    92   <profiles>
    93       <profile>
    94           <id>fxbrwsr</id>
    95           <activation>
    96               <activeByDefault>true</activeByDefault>
    97           </activation>
    98           <build>
    99             <plugins>
   100                 <plugin>
   101                     <artifactId>maven-assembly-plugin</artifactId>
   102                     <version>2.4</version>
   103                     <executions>
   104                         <execution>
   105                             <id>distro-assembly</id>
   106                             <phase>package</phase>
   107                             <goals>
   108                                 <goal>single</goal>
   109                             </goals>
   110                             <configuration>
   111                                 <descriptors>
   112                                     <descriptor>src/main/assembly/html.java.net.xml</descriptor>
   113                                 </descriptors>
   114                             </configuration>
   115                         </execution>
   116                     </executions>                
   117                 </plugin>      
   118             </plugins>
   119           </build>
   120           <dependencies>
   121             <dependency>
   122                 <groupId>org.netbeans.html</groupId>
   123                 <artifactId>net.java.html.boot.fx</artifactId>
   124                 <version>${net.java.html.version}</version>
   125                 <scope>runtime</scope>
   126             </dependency>
   127           </dependencies>
   128       </profile>
   129       <profile>
   130           <id>bck2brwsr</id>
   131           <activation>
   132               <property>
   133                   <name>brwsr</name>
   134                   <value>bck2brwsr</value>
   135               </property>
   136           </activation>
   137           <build>
   138               <plugins>
   139                   <plugin>
   140                       <groupId>org.apidesign.bck2brwsr</groupId>
   141                       <artifactId>bck2brwsr-maven-plugin</artifactId>
   142                       <version>${bck2brwsr.version}</version>
   143                       <executions>
   144                           <execution>
   145                               <goals>
   146                                   <goal>brwsr</goal>
   147                               </goals>
   148                           </execution>
   149                       </executions>
   150                       <configuration>
   151                           <directory>${basedir}/src/main/webapp/</directory>
   152                           <startpage>${brwsr.startpage}</startpage>
   153                       </configuration>
   154                   </plugin>
   155                   <plugin>
   156                       <groupId>org.apache.maven.plugins</groupId>
   157                       <artifactId>maven-compiler-plugin</artifactId>
   158                       <configuration>
   159                           <compilerArguments>
   160                               <bootclasspath>netbeans.ignore.jdk.bootclasspath</bootclasspath>
   161                           </compilerArguments>
   162                       </configuration>
   163                   </plugin>
   164                   <plugin>
   165                       <artifactId>maven-assembly-plugin</artifactId>
   166                       <version>2.4</version>
   167                       <executions>
   168                           <execution>
   169                               <id>distro-assembly</id>
   170                               <phase>package</phase>
   171                               <goals>
   172                                   <goal>single</goal>
   173                               </goals>
   174                               <configuration>
   175                                   <descriptors>
   176                                       <descriptor>src/main/assembly/bck2brwsr.xml</descriptor>
   177                                   </descriptors>
   178                               </configuration>
   179                           </execution>
   180                       </executions>                
   181                   </plugin>      
   182               </plugins>
   183           </build>
   184           <dependencies>
   185               <dependency>
   186                   <groupId>org.apidesign.bck2brwsr</groupId>
   187                   <artifactId>emul</artifactId>
   188                   <version>${bck2brwsr.version}</version>
   189                   <classifier>rt</classifier>
   190               </dependency>
   191               <dependency>
   192                   <groupId>org.apidesign.bck2brwsr</groupId>
   193                   <artifactId>ko-bck2brwsr</artifactId>
   194                   <version>${bck2brwsr.version}</version>
   195                   <scope>runtime</scope>
   196               </dependency>
   197               <dependency>
   198                   <groupId>org.apidesign.bck2brwsr</groupId>
   199                   <artifactId>vm4brwsr</artifactId>
   200                   <classifier>js</classifier>
   201                   <type>zip</type>
   202                   <version>${bck2brwsr.version}</version>
   203                   <scope>provided</scope>
   204               </dependency>
   205           </dependencies>
   206       </profile>
   207       <profile>
   208           <id>dlvkbrwsr</id>
   209           <activation>
   210               <property>
   211                   <name>android.sdk.path</name>
   212               </property>
   213           </activation>
   214           <properties>
   215               <platform.version>4.1.1.4</platform.version>
   216               <android.plugin.version>3.7.0</android.plugin.version>
   217               <debug>false</debug>
   218           </properties>
   219           <dependencies>
   220               <dependency>
   221                   <groupId>com.google.android</groupId>
   222                   <artifactId>android</artifactId>
   223                   <version>${platform.version}</version>
   224                   <scope>provided</scope>
   225               </dependency>
   226               <dependency>
   227                   <groupId>org.netbeans.html</groupId>
   228                   <artifactId>ko-ws-tyrus</artifactId>
   229                   <version>${net.java.html.version}</version>
   230                   <exclusions>
   231                       <exclusion>
   232                           <artifactId>org.json-osgi</artifactId>
   233                           <groupId>de.twentyeleven.skysail</groupId>
   234                       </exclusion>
   235                   </exclusions>
   236               </dependency>
   237               <dependency>
   238                   <groupId>org.apidesign.html</groupId>
   239                   <artifactId>dlvkbrwsr</artifactId>
   240                   <version>0.1-SNAPSHOT</version>
   241                   <type>jar</type>
   242               </dependency>
   243           </dependencies>
   244           <build>
   245               <plugins>
   246                   <plugin>
   247                       <groupId>com.jayway.maven.plugins.android.generation2</groupId>
   248                       <artifactId>android-maven-plugin</artifactId>
   249                       <version>${android.plugin.version}</version>
   250                       <extensions>true</extensions>
   251                       <configuration>
   252                           <classifier>apk</classifier>
   253                           <attachJar>false</attachJar>
   254                           <apkDebug>debug</apkDebug>
   255                           <assetsDirectory>src/main/webapp</assetsDirectory>
   256                           <sdk>
   257                               <platform>16</platform>
   258                           </sdk>
   259                           <apk>
   260                               <metaIncludes>
   261                                   <metaInclude>services/org.apidesign.**</metaInclude>
   262                               </metaIncludes>
   263                           </apk>
   264                           <file>${project.build.directory}/${project.build.finalName}.apk</file>
   265                       </configuration>
   266                       <executions>
   267                           <execution>
   268                               <id>apk</id>
   269                               <goals>
   270                                   <goal>apk</goal>
   271                                   <goal>dex</goal>
   272                               </goals>
   273                           </execution>
   274                       </executions>
   275                   </plugin>
   276                   <plugin>
   277                       <groupId>org.apache.maven.plugins</groupId>
   278                       <artifactId>maven-install-plugin</artifactId>
   279                       <version>2.5.1</version>
   280                       <configuration>
   281                           <groupId>${project.groupId}</groupId>
   282                           <artifactId>${project.artifactId}</artifactId>
   283                           <version>${project.version}</version>
   284                           <file>${project.build.directory}/${project.build.finalName}.apk</file>
   285                           <packaging>apk</packaging>
   286                           <skip>true</skip>
   287                       </configuration>
   288                       <executions>
   289                           <execution>
   290                               <id>install-apk</id>
   291                               <phase>install</phase>
   292                               <goals>
   293                                   <goal>install-file</goal>
   294                               </goals>
   295                           </execution>
   296                       </executions>
   297                   </plugin>
   298               </plugins>
   299           </build>
   300       </profile>
   301       <profile>
   302           <id>teabrwsr</id>
   303           <build>
   304               <plugins>
   305                   <plugin>
   306                       <groupId>org.teavm</groupId>
   307                       <artifactId>teavm-maven-plugin</artifactId>
   308                       <version>0.0.1-SNAPSHOT</version>
   309                       <dependencies>
   310                           <dependency>
   311                               <groupId>org.teavm</groupId>
   312                               <artifactId>teavm-classlib</artifactId>
   313                               <version>0.0.1-SNAPSHOT</version>
   314                           </dependency>
   315                           <!-- This module adds html4j support. It mainly includes JavaScriptBuilder support.
   316                           Also there are some little patches to JCL emulation, that are required to pass TCK -->
   317                           <dependency>
   318                               <groupId>org.teavm</groupId>
   319                               <artifactId>teavm-html4j</artifactId>
   320                               <version>0.0.1-SNAPSHOT</version>
   321                           </dependency>
   322                       </dependencies>
   323                       <executions>
   324                           <execution>
   325                               <id>generate-minesweeper</id>
   326                               <goals>
   327                                   <goal>build-javascript</goal>
   328                               </goals>
   329                               <phase>process-classes</phase>
   330                               <configuration>
   331                                   <!-- Whether we want TeaVM to minify (obfuscate) the generated JavaScript -->
   332                                   <minifying>false</minifying>
   333                                   <mainClass>org.apidesign.demo.minesweeper.MinesModel</mainClass>
   334                                   <!-- Don't include main page - we created it by ourselves -->
   335                                   <mainPageIncluded>false</mainPageIncluded>
   336                                   <targetDirectory>${project.build.directory}/teavm</targetDirectory>
   337                                   <!-- This transformer adds null checks before virtual calls. It is not included
   338                                   by default as we don't always need these null checks -->
   339                                   <transformers>
   340                                       <param>org.teavm.javascript.NullPointerExceptionTransformer</param>
   341                                   </transformers>
   342                               </configuration>
   343                           </execution>
   344                       </executions>
   345                   </plugin>
   346                   <plugin>
   347                       <artifactId>maven-assembly-plugin</artifactId>
   348                       <version>2.4</version>
   349                       <executions>
   350                           <execution>
   351                               <id>distro-assembly</id>
   352                               <phase>package</phase>
   353                               <goals>
   354                                   <goal>single</goal>
   355                               </goals>
   356                               <configuration>
   357                                   <descriptors>
   358                                       <descriptor>src/main/assembly/teabrwsr.xml</descriptor>
   359                                   </descriptors>
   360                               </configuration>
   361                           </execution>
   362                       </executions>                
   363                   </plugin>      
   364               </plugins>
   365           </build>
   366       </profile>
   367   </profiles>  
   368 </project>