Skip to content

Instantly share code, notes, and snippets.

@aVolpe
Last active July 20, 2022 12:32
Show Gist options
  • Star 6 You must be signed in to star a gist
  • Fork 4 You must be signed in to fork a gist
  • Save aVolpe/8c91a43750fcacca426699d8582b84da to your computer and use it in GitHub Desktop.
Save aVolpe/8c91a43750fcacca426699d8582b84da to your computer and use it in GitHub Desktop.
Build a angular-cli project with maven
{...
"scripts": {
"ng": "ng",
"start": "ng serve --proxy-config proxy.conf.json",
"clean": "rm -rf dist",
"build-prod": "yarn install && ng build -prod",
"build-dev": "yarn install && ng build -dev",
"test": "ng test",
"lint": "ng lint",
"e2e": "ng e2e"
},
..}
<?xml version="1.0" encoding="UTF-8"?>
<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>
<artifactId>test</artifactId>
<groupId>py.com.volpe</groupId>
<version>1.0.0-SNAPSHOT</version>
<packaging>war</packaging>
<properties>
<node.version>v6.9.1</node.version>
<yarn.version>v0.24.6</yarn.version>
<frontend-maven-plugin.version>1.4</frontend-maven-plugin.version>
<environment>prod</environment>
</properties>
<build>
<plugins>
<plugin>
<groupId>com.github.eirslett</groupId>
<artifactId>frontend-maven-plugin</artifactId>
<version>${frontend-maven-plugin.version}</version>
<executions>
<execution>
<id>install node and yarn</id>
<goals>
<goal>install-node-and-yarn</goal>
</goals>
<phase>generate-resources</phase>
</execution>
<execution>
<id>yarn install</id>
<goals>
<goal>yarn</goal>
</goals>
<phase>compile</phase>
<configuration>
<arguments>install</arguments>
</configuration>
</execution>
<execution>
<id>ng build</id>
<goals>
<goal>yarn</goal>
</goals>
<phase>generate-resources</phase>
<configuration>
<arguments>run build-${environment}</arguments>
</configuration>
</execution>
<execution>
<id>ng clean</id>
<goals>
<goal>yarn</goal>
</goals>
<phase>clean</phase>
<configuration>
<arguments>run clean</arguments>
</configuration>
</execution>
</executions>
<configuration>
<nodeVersion>${node.version}</nodeVersion>
<yarnVersion>${yarn.version}</yarnVersion>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>3.1.0</version>
<configuration>
<webXml>web.xml</webXml>
<webResources>
<resource>
<!-- this is relative to the pom.xml directory -->
<directory>dist</directory>
</resource>
</webResources>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.1</version>
<configuration>
<update>true</update>
<path>/${project.name}##${project.version}</path>
</configuration>
</plugin>
</plugins>
</build>
</project>
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
metadata-complete="false" version="3.1">
</web-app>
@davecpayne
Copy link

Does mvn clean work here? I have a very similar setup, and it's failing with:

[ERROR] Failed to execute goal com.github.eirslett:frontend-maven-plugin:1.6:yarn (clean node modules) on project my-project: Failed to run task: 'yarn clean' failed. java.io.IOException: Cannot run program "/my-project/target/node/yarn/dist/bin/yarn" (in directory "/my-project"): error=2, No such file or directory -> [Help 1]

Presumably this is because the install node and yarn execution hasn't happened before it runs clean. Or am I doing something stupid?

@fridoo
Copy link

fridoo commented Feb 3, 2018

Why is 'ng build' performed in the 'generate-resources' phase and therefore before the 'yarn install' command in the 'compile' phase?
Shoudn't 'yarn install' be in the 'generate-resources' phase and 'ng build' in the 'compile' phase?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment