| <!-- |
| 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/maven-v4_0_0.xsd"> |
| <parent> |
| <artifactId>hadoop-yarn</artifactId> |
| <groupId>org.apache.hadoop</groupId> |
| <version>3.1.2</version> |
| </parent> |
| <modelVersion>4.0.0</modelVersion> |
| <artifactId>hadoop-yarn-ui</artifactId> |
| <version>3.1.2</version> |
| <name>Apache Hadoop YARN UI</name> |
| <packaging>${packagingType}</packaging> |
| |
| <properties> |
| <packagingType>pom</packagingType> |
| <webappDir>${basedir}/target/webapp</webappDir> |
| <nodeExecutable>${basedir}/target/webapp/node/node</nodeExecutable> |
| <packageManagerScript>node/yarn/dist/bin/yarn.js</packageManagerScript> |
| <keepUIBuildCache>false</keepUIBuildCache> |
| </properties> |
| |
| <build> |
| <plugins> |
| <!-- Apache RAT --> |
| <plugin> |
| <groupId>org.apache.rat</groupId> |
| <artifactId>apache-rat-plugin</artifactId> |
| <configuration> |
| <excludes> |
| <exclude>src/main/webapp/jsconfig.json</exclude> |
| <exclude>src/main/webapp/bower.json</exclude> |
| <exclude>src/main/webapp/bower-shrinkwrap.json</exclude> |
| <exclude>src/main/webapp/package.json</exclude> |
| <exclude>src/main/webapp/yarn.lock</exclude> |
| <exclude>src/main/webapp/testem.json</exclude> |
| <exclude>src/main/webapp/public/assets/images/**/*</exclude> |
| <exclude>src/main/webapp/public/assets/images/*</exclude> |
| <exclude>src/main/webapp/public/robots.txt</exclude> |
| <exclude>public/crossdomain.xml</exclude> |
| <exclude>src/main/webapp/.bowerrc</exclude> |
| <exclude>src/main/webapp/.ember-cli</exclude> |
| <exclude>src/main/webapp/.jshintrc</exclude> |
| <exclude>src/main/webapp/.watchmanconfig</exclude> |
| <exclude>src/main/webapp/WEB-INF/wro.xml</exclude> |
| </excludes> |
| </configuration> |
| </plugin> |
| |
| <plugin> |
| <artifactId>maven-clean-plugin</artifactId> |
| <version>3.0.0</version> |
| <configuration> |
| <skip>${keepUIBuildCache}</skip> |
| <followSymLinks>false</followSymLinks> |
| <filesets> |
| <fileset> |
| <directory>${webappDir}/bower_components</directory> |
| </fileset> |
| <fileset> |
| <directory>${webappDir}/node_modules</directory> |
| </fileset> |
| </filesets> |
| </configuration> |
| </plugin> |
| </plugins> |
| </build> |
| |
| <profiles> |
| <profile> |
| <id>yarn-ui</id> |
| |
| <activation> |
| <activeByDefault>false</activeByDefault> |
| </activation> |
| |
| <properties> |
| <packagingType>war</packagingType> |
| </properties> |
| |
| <build> |
| <plugins> |
| <!-- Copy files into target for build --> |
| <plugin> |
| <artifactId>maven-resources-plugin</artifactId> |
| <executions> |
| <execution> |
| <id>copy-resources</id> |
| <!-- here the phase you need --> |
| <phase>validate</phase> |
| <goals> |
| <goal>copy-resources</goal> |
| </goals> |
| <configuration> |
| <outputDirectory>${webappDir}</outputDirectory> |
| <resources> |
| <resource> |
| <directory>${basedir}/src/main/webapp</directory> |
| <filtering>true</filtering> |
| <excludes> |
| <exclude>node_modules/**/*</exclude> |
| <exclude>bower_components/**/*</exclude> |
| <exclude>tmp/**/*</exclude> |
| <exclude>dist/**/*</exclude> |
| </excludes> |
| </resource> |
| </resources> |
| </configuration> |
| </execution> |
| </executions> |
| </plugin> |
| |
| <!-- Install Node, Yarn, Bower & dependencies --> |
| <plugin> |
| <groupId>com.github.eirslett</groupId> |
| <artifactId>frontend-maven-plugin</artifactId> |
| <version>${frontend-maven-plugin.version}</version> |
| <configuration> |
| <workingDirectory>${webappDir}</workingDirectory> |
| </configuration> |
| <executions> |
| |
| <!-- Install all dependencies --> |
| <execution> |
| <phase>generate-resources</phase> |
| <id>install node and yarn</id> |
| <goals> |
| <goal>install-node-and-yarn</goal> |
| </goals> |
| <configuration> |
| <nodeVersion>v5.12.0</nodeVersion> |
| <yarnVersion>v0.21.3</yarnVersion> |
| </configuration> |
| </execution> |
| <execution> |
| <phase>generate-resources</phase> |
| <id>yarn install</id> |
| <goals> |
| <goal>yarn</goal> |
| </goals> |
| <configuration> |
| <arguments>install</arguments> |
| </configuration> |
| </execution> |
| <execution> |
| <phase>generate-resources</phase> |
| <id>bower install</id> |
| <configuration> |
| <arguments>install</arguments> |
| </configuration> |
| <goals> |
| <goal>bower</goal> |
| </goals> |
| </execution> |
| </executions> |
| </plugin> |
| |
| <plugin> |
| <groupId>org.codehaus.mojo</groupId> |
| <artifactId>exec-maven-plugin</artifactId> |
| <executions> |
| |
| <!-- Ember Build --> |
| <execution> |
| <id>ember build</id> |
| <phase>generate-resources</phase> |
| <goals> |
| <goal>exec</goal> |
| </goals> |
| <configuration> |
| <workingDirectory>${webappDir}</workingDirectory> |
| <executable>${nodeExecutable}</executable> |
| <arguments> |
| <argument>${packageManagerScript}</argument> |
| <argument>run</argument> |
| <argument>build:mvn</argument> |
| </arguments> |
| </configuration> |
| </execution> |
| |
| </executions> |
| </plugin> |
| |
| <!-- Asset minifier --> |
| <plugin> |
| <groupId>ro.isdc.wro4j</groupId> |
| <artifactId>wro4j-maven-plugin</artifactId> |
| <version>1.7.9</version> |
| <executions> |
| <execution> |
| <phase>prepare-package</phase> |
| <goals> |
| <goal>run</goal> |
| </goals> |
| </execution> |
| </executions> |
| <configuration> |
| <minimize>true</minimize> |
| <targetGroups>yarn-ui,vendor</targetGroups> |
| <destinationFolder>${basedir}/target/minified-resources/assets</destinationFolder> |
| <contextFolder>${webappDir}/dist/assets</contextFolder> |
| <wroFile>${webappDir}/WEB-INF/wro.xml</wroFile> |
| </configuration> |
| </plugin> |
| |
| <!-- Package into war --> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-war-plugin</artifactId> |
| <executions> |
| <execution> |
| <phase>package</phase> |
| </execution> |
| </executions> |
| <configuration> |
| <webXml>${webappDir}/WEB-INF/web.xml</webXml> |
| <warSourceDirectory>${webappDir}/dist</warSourceDirectory> |
| <webResources> |
| <resource> |
| <filtering>false</filtering> |
| <directory>${basedir}/target/minified-resources</directory> |
| </resource> |
| </webResources> |
| </configuration> |
| </plugin> |
| |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-jar-plugin</artifactId> |
| <configuration> |
| <skipIfEmpty>true</skipIfEmpty> |
| </configuration> |
| </plugin> |
| |
| </plugins> |
| </build> |
| </profile> |
| </profiles> |
| |
| </project> |