2016-05-18 3 views
0

Я использую NVM для управления моими версиями NodeJS. Я пытаюсь интегрировать его с Maven в работу Дженкинса. Следующий сценарий выполняется до запуска Maven. Я не думаю, что есть способ передать в каталог установки NodeJS Maven в качестве аргумента опции. Я считаю, что nvm use экспортирует каталог установки NodeJS в PATH, но я мог ошибаться.Стратегия управления версиями узлов с Maven

#!/bin/sh -e 
source /mounts/dev/jenkins/.nvm/nvm.sh 
nvm alias default node 
nvm use --delete-prefix v4.2.0 --silent 

Причина, почему Maven необходимо NodeJS из-за yeoman-maven-plugin, который, по умолчанию, использует глобально установленную версию NodeJS. Я знаю, что есть плагин NodeJS для Jenkins, который работает, но я не думаю, что использовать это оптимально.

Я думаю, что можно интегрировать NVM в работу Дженкинса Мейвена, но я, возможно, ошибаюсь. У кого-нибудь есть идеи по другому подходу NVM?

ответ

0

Вместо того, чтобы пытаться интегрировать NVM с Maven, мы решили отказаться от yeoman-maven-plugin и вместо этого отправились с frontend-maven-plugin. frontend-maven-plugin позволяет устанавливать локальные узлы и NPM, а также другие инструменты сборки, такие как Gulp и Grunt. Единственное изменение, которое необходимо было сделать, было на pom.xml. Кроме того, больше нет необходимости в дополнительных скриптах в Jenkins.

Пример использования для установки узлов и НОГО

<plugin> 
    ... 
    <execution> 
     <!-- optional: you don't really need execution ids, 
     but it looks nice in your build log. --> 
     <id>install node and npm</id> 
     <goals> 
      <goal>install-node-and-npm</goal> 
     </goals> 
     <!-- optional: default phase is "generate-resources" --> 
     <phase>generate-resources</phase> 
    </execution> 
    <configuration> 
     <nodeVersion>v0.10.18</nodeVersion> 
     <npmVersion>1.3.8</npmVersion> 
     <!-- optional: where to download node and npm from. Defaults to https://nodejs.org/dist/ --> 
     <downloadRoot>http://myproxy.example.org/nodejs/dist/</downloadRoot> 
     <!-- optional: where to install node and npm. Defaults to the working directory --> 
     <installDirectory>target</installDirectory> 
    </configuration> 
</plugin> 

Более подробной информации о плагине можно найти here.