blob: 7029c50cb71b04439869bbdf946047dac23c5004 [file] [log] [blame]
<?xml version="1.0" encoding="UTF-8"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
--><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>org.apache</groupId>
<artifactId>apache</artifactId>
<version>23</version>
<relativePath />
</parent>
<groupId>org.apache.royale.framework</groupId>
<artifactId>royale-framework-parent</artifactId>
<version>0.9.9</version>
<packaging>pom</packaging>
<name>Apache Royale: Framework: Parent</name>
<description>The Apache Royale Project</description>
<!--
This build builds only the framework libraries per default.
- In order to build the examples, activate the "with-examples" profile
- In order to assemble a distribution, activate the "with-distribution" profile.
-->
<scm>
<connection>scm:git:https://gitbox.apache.org/repos/asf/royale-asjs.git</connection>
<developerConnection>scm:git:https://gitbox.apache.org/repos/asf/royale-asjs.git</developerConnection>
<url>https://github.com/apache/royale-asjs</url>
<tag>org.apache.royale.framework-0.9.9-rc4</tag>
</scm>
<properties>
<java.version>1.7</java.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputencoding>UTF-8</project.reporting.outputencoding>
<maven.version>3.5.4</maven.version>
<royale.build-tools.version>1.2.1</royale.build-tools.version>
<project.royale.compiler.version>0.9.9</project.royale.compiler.version>
<royale.typedefs.version>0.9.9</royale.typedefs.version>
<royale.targets>JSRoyale</royale.targets>
<royale.skipAS>true</royale.skipAS>
<royale.debug>true</royale.debug>
<repo.compiler.options />
<flex.version>4.15.0</flex.version>
<flash.version>20.0</flash.version>
<air.version>20.0</air.version>
<!-- For SWF versions see: http://www.adobe.com/devnet/articles/flashplayer-air-feature-list.html -->
<swf.version>31</swf.version>
<source.map>true</source.map>
<!-- This parameter has to be provided from the outside -->
<webdriver.gecko.driver />
<selenium.version>3.4.0</selenium.version>
<junit.version>4.12</junit.version>
<release-profiles>apache-release,with-distribution,option-with-swf</release-profiles>
<!-- Dont't open multiple connections to one service to upload multiple artifacts at the same time -->
<maven.wagon.httpconnectionManager.maxPerRoute>1</maven.wagon.httpconnectionManager.maxPerRoute>
<!-- Dont't open multiple connections in total to upload multiple artifacts at the same time -->
<maven.wagon.httpconnectionManager.maxTotal>1</maven.wagon.httpconnectionManager.maxTotal>
<!-- Change the retry handler to a version that supports retries -->
<maven.wagon.http.retryHandler.class>standard</maven.wagon.http.retryHandler.class>
<!-- Try at most 6 times to deploy every artifact -->
<maven.wagon.http.retryHandler.count>6</maven.wagon.http.retryHandler.count>
<project.build.outputTimestamp>2022-03-17T08:05:21Z</project.build.outputTimestamp></properties>
<!-- Only configure the site distribution as the rest is handled by the apache parent -->
<distributionManagement>
<site>
<id>apache.website</id>
<url>scm:git:https://gitbox.apache.org/repos/asf/royale-asjs.git</url>
</site>
</distributionManagement>
<issueManagement>
<system>Jira</system>
<url>https://github.com/apache/royale-asjs/issues</url>
</issueManagement>
<mailingLists>
<mailingList>
<name>Apache Royale User List</name>
<subscribe>users-subscribe@royale.apache.org</subscribe>
<unsubscribe>users-unsubscribe@royale.apache.org</unsubscribe>
<post>users@royale.apache.org</post>
<archive>http://mail-archives.apache.org/mod_mbox/royale-users/</archive>
</mailingList>
<mailingList>
<name>Apache Royale Developer List</name>
<subscribe>dev-subscribe@royale.apache.org</subscribe>
<unsubscribe>dev-unsubscribe@royale.apache.org</unsubscribe>
<post>dev@royale.apache.org</post>
<archive>http://mail-archives.apache.org/mod_mbox/royale-dev/</archive>
</mailingList>
</mailingLists>
<modules>
<module>frameworks</module>
<module>archetypes</module>
</modules>
<build>
<extensions>
<extension>
<groupId>org.apache.maven.wagon</groupId>
<artifactId>wagon-http</artifactId>
<version>3.4.0</version>
</extension>
</extensions>
<pluginManagement>
<plugins>
<plugin>
<groupId>com.googlecode.maven-download-plugin</groupId>
<artifactId>download-maven-plugin</artifactId>
<version>1.5.0</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>3.2.3</version>
</plugin>
<plugin>
<groupId>org.codehaus.gmaven</groupId>
<artifactId>groovy-maven-plugin</artifactId>
<version>2.1.1</version>
</plugin>
<plugin>
<groupId>org.apache.royale.compiler</groupId>
<artifactId>royale-maven-plugin</artifactId>
<version>${project.royale.compiler.version}</version>
<extensions>true</extensions>
<configuration>
<targetPlayer>${flash.version}</targetPlayer>
<debug>${royale.debug}</debug>
<keepAs3Metadata>
<name>Bindable</name>
<name>Managed</name>
<name>ChangeEvent</name>
<name>NonCommittingChangeEvent</name>
<name>Transient</name>
<name>Mixin</name>
</keepAs3Metadata>
</configuration>
<dependencies>
<dependency>
<groupId>org.apache.royale.compiler</groupId>
<artifactId>compiler-jx</artifactId>
<version>${project.royale.compiler.version}</version>
</dependency>
</dependencies>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>versions-maven-plugin</artifactId>
<version>2.7</version>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<version>3.0.0</version>
</plugin>
<plugin>
<groupId>nl.geodienstencentrum.maven</groupId>
<artifactId>sass-maven-plugin</artifactId>
<version>3.7.2</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-scm-publish-plugin</artifactId>
<version>3.0.0</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-scm-plugin</artifactId>
<version>1.10.0</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>3.2.0</version>
<configuration>
<skip>true</skip>
</configuration>
</plugin>
<plugin>
<groupId>com.theoryinpractise</groupId>
<artifactId>reproducible-maven-plugin</artifactId>
<version>1.0.1</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-deploy-plugin</artifactId>
<version>2.8.2</version>
<!-- If deploying fails due to repo or network problems, retry the given number of times (1-10) -->
<configuration>
<retryFailedDeploymentCount>6</retryFailedDeploymentCount>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-release-plugin</artifactId>
<version>3.0.0-M1</version>
</plugin>
</plugins>
</pluginManagement>
<plugins>
<!-- Execute some checks if the environment ist correctly configured -->
<plugin>
<groupId>org.codehaus.gmaven</groupId>
<artifactId>groovy-maven-plugin</artifactId>
<executions>
<!-- Do some pre-build checks and report any findings to the user -->
<execution>
<id>prerequisite-check</id>
<phase>validate</phase>
<goals>
<goal>execute</goal>
</goals>
<inherited>false</inherited>
<configuration>
<properties>
<!--
We have to pass this value in this way or we can't
access the value overridden by the commandline.
-->
<geckoProperty>${webdriver.gecko.driver}</geckoProperty>
</properties>
<source>${project.basedir}/src/main/script/prerequisiteCheckFramework.groovy</source>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-release-plugin</artifactId>
<configuration>
<arguments combine.self="override">-P${release-profiles}</arguments>
</configuration>
</plugin>
<!-- Check if all source files have the required apache license headers -->
<plugin>
<groupId>org.apache.rat</groupId>
<artifactId>apache-rat-plugin</artifactId>
<version>0.13</version>
<executions>
<execution>
<id>license-check</id>
<phase>verify</phase>
<goals>
<goal>check</goal>
</goals>
</execution>
</executions>
<configuration>
<!-- Make rat log the problematic files in the build output -->
<consoleOutput>true</consoleOutput>
<excludes>
<!-- JSON files can't contain comments -->
<exclude>**/*.json</exclude>
<!-- This is appended to the LICENSE file for binary packages-->
<exclude>LICENSE.bin</exclude>
<!-- READMEs don't have headers -->
<exclude>**/README.md</exclude>
<!-- RELEASE_NOTES don't have headers either -->
<exclude>**/RELEASE_NOTES.md</exclude>
<!-- Stuff that needs to be removed -->
<exclude>fxg2svg/**</exclude>
<exclude>vf2js/**</exclude>
<!-- Should probably also be removed -->
<exclude>js/*jshint*</exclude>
<!-- FlashBuilder settings. frameworks/fb.properties contains Alex' path entries and should be removed -->
<exclude>**/fb.properties</exclude>
<!-- FlashBuilder / Eclipse settings. If checked in, they should have apache headers -->
<exclude>**/.settings/**</exclude>
<!-- Ignore IntelliJ IDEA project files -->
<exclude>**/*.iml</exclude>
<exclude>**/.idea/**</exclude>
<!-- SASS cc.map generated files by sass-maven-plugin-->
<exclude>**/*.css.map</exclude>
<!-- swfobject.js is MIT License-->
<exclude>**/swfobject.js</exclude>
<!-- audio file doesn't have rat-able license-->
<exclude>**/ping.mp3</exclude>
<!--
Exclude any eventually existing content of target directories.
Some times when building with a bigger maven reactor and then
with a smaller one, RAT will complain about stuff still in the
target directories. We don't want that.
-->
<exclude>**/target/**</exclude>
<!--
Same case for generated compilations of examples or libraries
done with IDEs that instead of target use bin.
-->
<exclude>**/bin/**</exclude>
<exclude>**/src/test/royale/out/**</exclude>
<exclude>lib/external/*.html</exclude>
<!-- Moonshine generate this files -->
<exclude>obj/*.xml</exclude>
<exclude>*.as3proj</exclude>
<!-- Exclude node_modules -->
<exclude>node_modules/**</exclude>
<!-- Exclude serc/assets like *.afdesign or other files that generate other project source files like SVGs -->
<exclude>src/assets/**</exclude>
<!--
Exclude these empty files, as they are empty and therefore don't contain anything
(They are needed for supporting the FlashBuilder product)
-->
<exclude>**/localfonts.ser</exclude>
<exclude>**/macfonts.ser</exclude>
<exclude>**/winfonts.ser</exclude>
</excludes>
</configuration>
</plugin>
</plugins>
</build>
<profiles>
<profile>
<id>with-examples</id>
<modules>
<module>examples</module>
</modules>
</profile>
<profile>
<id>with-distribution</id>
<modules>
<module>distribution</module>
</modules>
</profile>
<profile>
<id>with-manualtests</id>
<modules>
<module>manualtests</module>
</modules>
</profile>
<!-- Disabled for now till I find out what the module is about -->
<!--profile>
<id>with-ui-testsuite</id>
<modules>
<module>testsuite</module>
</modules>
</profile-->
<profile>
<id>option-with-swf</id>
<properties>
<royale.targets>SWF,JSRoyale</royale.targets>
<royale.skipAS>false</royale.skipAS>
</properties>
<dependencies>
<dependency>
<groupId>org.apache.royale.typedefs</groupId>
<artifactId>royale-typedefs-airglobal</artifactId>
<version>${royale.typedefs.version}</version>
<type>swc</type>
<scope>runtime</scope>
<classifier>swf</classifier>
</dependency>
</dependencies>
</profile>
<profile>
<id>_reproducible-build</id>
<properties>
<repo.compiler.options>
-metadata.date=${project.build.outputTimestamp};-metadata.dateFormat=yyyy-MM-dd'T'HH:mm:ss'Z'</repo.compiler.options>
</properties>
<activation>
<property>
<name>project.build.outputTimestamp</name>
</property>
</activation>
<build>
<plugins>
<plugin>
<groupId>org.apache.royale.compiler</groupId>
<artifactId>royale-maven-plugin</artifactId>
<version>${project.royale.compiler.version}</version>
<extensions>true</extensions>
<configuration>
<additionalCompilerOptions>${repo.compiler.options}</additionalCompilerOptions>
</configuration>
</plugin>
</plugins>
</build>
</profile>
<!--
This profile enables the changes required to do releases on the Royale CI server.
It should not be used otherwise.
-->
<profile>
<id>royale-release</id>
<properties>
<!-- Ensure the royale-release plugin is enabled when running release:perform -->
<release-profiles>apache-release,royale-release,with-distribution,option-with-swf</release-profiles>
</properties>
<!-- Redirect the deployment to a local directory -->
<!-- Note: using the 'altReleaseDeploymentRepository' and alike were ignored in the release:perform phase -->
<distributionManagement>
<repository>
<id>apache.releases.https</id>
<name>Apache Release Distribution Repository</name>
<!--
'maven.multiModuleProjectDirectory' is a property introduced with maven 3.3.1 ...
don't worry if your IDE is complaining.
Also this will be set to the 'target/checkout' directory the output will be in
'target/local-release-dir'.
-->
<url>file://${maven.multiModuleProjectDirectory}/../local-release-dir</url>
</repository>
</distributionManagement>
<build>
<plugins>
<!-- Generate the effective poms for this build -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-help-plugin</artifactId>
<executions>
<execution>
<id>generate-effective-pom</id>
<phase>compile</phase>
<goals>
<goal>effective-pom</goal>
</goals>
<configuration>
<output>${project.build.directory}/effective.pom</output>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
<pluginManagement>
<plugins>
<!-- We require the release manager to manually login an sign using his credentials -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-gpg-plugin</artifactId>
<configuration>
<skip>true</skip>
</configuration>
</plugin>
<!-- We require the release manager to login and push the changes using his credentials -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-release-plugin</artifactId>
<configuration>
<pushChanges>false</pushChanges>
<providerImplementations>
<git>jgit</git>
</providerImplementations>
</configuration>
<dependencies>
<dependency>
<groupId>org.apache.maven.scm</groupId>
<artifactId>maven-scm-provider-jgit</artifactId>
<version>1.11.3-SNAPSHOT</version>
</dependency>
</dependencies>
</plugin>
</plugins>
</pluginManagement>
</build>
</profile>
<!--
This profile is needed by the releasesteps.xml Ant script in order to know
where to deploy artifacts.
-->
<profile>
<id>_releasesteps-upload-release-to-staging</id>
<activation>
<activeByDefault>false</activeByDefault>
</activation>
<modules><!-- only run on top-level, not for each module -->
</modules>
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>wagon-maven-plugin</artifactId>
<version>2.0.0</version>
<configuration>
<includes>**</includes>
<serverId>apache.releases.https</serverId>
<url>https://repository.apache.org/service/local/staging/deploy/maven2</url>
</configuration>
</plugin>
</plugins>
</build>
</profile>
<!-- Make the release-plugin use the new reproducible build plugin extension -->
<profile>
<id>apache-release</id>
<properties>
<source.map>false</source.map>
<royale.debug>false</royale.debug>
</properties>
<build>
<plugins>
<plugin>
<groupId>com.theoryinpractise</groupId>
<artifactId>reproducible-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-release-plugin</artifactId>
<configuration>
<preparationGoals>clean com.theoryinpractise:reproducible-maven-plugin:apply install</preparationGoals>
<completionGoals>com.theoryinpractise:reproducible-maven-plugin:clear</completionGoals>
</configuration>
</plugin>
<!--
Create MD5 and SHA512 checksum files for the release artifacts.
-->
<plugin>
<groupId>net.nicoulaj.maven.plugins</groupId>
<artifactId>checksum-maven-plugin</artifactId>
<version>1.8</version>
<executions>
<execution>
<goals>
<goal>files</goal>
</goals>
</execution>
</executions>
<configuration>
<algorithms>
<algorithm>SHA-512</algorithm>
</algorithms>
<fileSets>
<fileSet>
<directory>${project.build.directory}</directory>
<includes>
<include>royale-framework-parent-${project.version}-source-release.zip</include>
</includes>
</fileSet>
</fileSets>
</configuration>
</plugin>
</plugins>
</build>
</profile>
</profiles>
</project>