Over a million developers have joined DZone.
{{announcement.body}}
{{announcement.title}}

Introducing the NPM Maven Plugin

DZone's Guide to

Introducing the NPM Maven Plugin

· DevOps Zone
Free Resource

Download “The DevOps Journey - From Waterfall to Continuous Delivery” to learn learn about the importance of integrating automated testing into the DevOps workflow, brought to you in partnership with Sauce Labs.

This post comes from Alberto Pose at the MuleSoft blog.

Introduction

Suppose that you have a Maven project and you want to download Node.js modules previously uploaded to NPM. One way of doing that without running node is by using the npm-maven-plugin. It allows the user to download the required Node modules without running node.js: It is completely implemented on the JVM.

Getting Started

First of all, you will need to add the Mule Maven repo to your pom.xml file:

<repository>
  <id>mulesoft-releases</id>
  <name>MuleSoft Repository</name>
  <url>https://repository.mulesoft.org/releases/</url> 
</repository>

After doing that, you will need to add the following to the build->plugin section of your pom.xml file:

<plugin>
    <groupId>org.mule.tools.javascript</groupId>
    <artifactId>npm-maven-plugin</artifactId>
    <version>1.0</version>
    <executions>
        <execution>
            <phase>generate-sources</phase>
            <goals>
                <goal>fetch-modules</goal>
            </goals>
            <configuration>
                <packages>
                    <package>colors:0.5.1</package>
                    <package>jshint:0.8.1</package>
                </packages>
            </configuration>
        </execution>
    </executions>
</plugin>

Then just execute:

mvn generate-sources
and that’s it!

One more thing…

By default, the modules can be found in src/main/resources/META-INF but that path can be changed setting the ‘outputDirectory’ parameter.

Also, module transitivity is taken into account. That means that it will download all the required dependencies before downloading the specified module.

Show me the code!

The source code can be found here. Feel free to fork the project and propose changes to it.

Happy (Node.js and Maven) hacking!





Discover how to optimize your DevOps workflows with our cloud-based automated testing infrastructure, brought to you in partnership with Sauce Labs

Topics:

Published at DZone with permission of Ross Mason, DZone MVB. See the original article here.

Opinions expressed by DZone contributors are their own.

THE DZONE NEWSLETTER

Dev Resources & Solutions Straight to Your Inbox

Thanks for subscribing!

Awesome! Check your inbox to verify your email so you can start receiving the latest in tech news and resources.

X

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}