ОБНОВЛЕНИЕ 2014-09-19: Это уже не самый точный ответ - пожалуйста, ознакомьтесь с некоторыми другими ответами ниже. Это было точно в то время, когда я ответил на этот вопрос, но с тех пор, похоже, с этой точки зрения был достигнут значительный прогресс.
Боюсь, что вам не повезло. Grunt построен с использованием узла и должен быть установлен с использованием npm. Возможно, вы сможете скопировать существующую установку Grunt с другого компьютера, если вы не хотите использовать npm, но все равно будете использовать исполняемый файл grunt
и все его зависимости на вашем сервере сборки.
В дополнение к этому многие задачи Grunt реализованы как модули Node.js, и вам также придется их установить. Опять же, вы можете скопировать их с другого сервера, где вы сделали установку Node.js/Grunt, но в какой-то момент вам нужно это сделать.
Для запуска Grunt из Maven лучше всего использовать плагин Maven exec, а затем выполнить исполняемый файл grunt.
В качестве альтернативы есть несколько плагинов Maven, которые позволяют вам делать вещи, похожие на Grunt, на основе Java. Они требуют дополнительной конфигурации, несовместимой с Grunt, поэтому YMMV. Один из них, который я использовал в прошлом, - http://code.google.com/p/wro4j/, который также поставляется с плагином Maven: http://code.google.com/p/wro4j/wiki/MavenPlugin
Любая конкретная причина, по которой вы не можете установить Node.js на свой сервер сборки?
Этот плагин замечательный! Цитата README: _Не хочу заменить версию разработчика Node - разработчики frontend все равно установят Node на своих ноутбуках, но разработчики backend могут запускать чистую сборку, даже не устанавливая Node на свой компьютер. – olivieradam666
Я использую это для нескольких проектов, и это потрясающе , Одна вещь, о которой нужно знать, это загрузить узел для системы, в которой он выполняется, поэтому, если на вашем сервере сборки есть другая ОС, вам нужно убедиться, что это версия, которую вы проверили в управлении версиями, ваша локальная версия (для меня OSX) должна поддерживаться локально в вашем проекте. – am80l
Другой альтернативой является .gitignore в папке «node» (где заканчиваются исполняемые файлы), поэтому каждая архитектура получает свои собственные. –