<?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.8-SNAPSHOT</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 "build-examples" profile | |
- In order to assemble a distribution, activate the "build-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>HEAD</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.1.0</royale.build-tools.version> | |
<royale.compiler.version>0.9.8-SNAPSHOT</royale.compiler.version> | |
<royale.typedefs.version>0.9.8-SNAPSHOT</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> | |
</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>${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>${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> | |
<exclude>npm/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> | |
</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> | |
<profile> | |
<id>with-ui-testsuite</id> | |
<!-- Disabled for now till I find out what the module is about --> | |
<!--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>com.adobe.air.framework</groupId> | |
<artifactId>airglobal</artifactId> | |
<version>${air.version}</version> | |
<type>swc</type> | |
<scope>runtime</scope> | |
</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>${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> |