У меня есть TFS 2012 R2 сервер в качестве машины сборки TFS. Я использую версию TFS 2015.2. Мне нужно использовать команду Maven. Я установил путь для Maven и Java, а также обновил его в переменной пути. Я могу выполнить команду maven в powershell на сервере (сборочная машина).
Но когда я пытаюсь выполнить то же самое в определении сборки TFS с использованием встроенного плагина powershell, я получаю сообщение об ошибке, что mvn не является распознанной командой. И когда я вхожу в полный путь Maven, то он не приносит мне никакого вывода.
Я получаю следующую ошибку:
Термин «mvn» не распознается как имя командлета, функции, файла сценария или работоспособной программы. Проверьте правильность написания имени или, если путь был указан, проверьте правильность пути и повторите попытку.
C: apache-maven-3.3.9 bin mvn -version
Я не уверен, что я делаю не так. Это хорошо работает, когда я выполняю это непосредственно на сервере, но не удается в TFS.
Maven : mvn is not recognized as an internal or external command
Источник: stackru.com
Часть 4. Основы Maven
Этот материал — часть цикла “Введение в Enterprise-разработку”. Предыдущие статьи:
- о сети;
- об архитектуре ПО;
- о протоколах HTTP/HTTPS.
Maven — инструмент для управления и сборки проектов — настоящий помощник Java-программиста. Он облегчает жизнь девелоперу на всех стадиях работы: от создания структуры проекта и подключения необходимых библиотек до развертывания продукта на сервере. При работе с любым фреймворком придется использовать Maven. Поэтому давай сегодня разберем его основные функции и посмотрим, как их нужно использовать.
Пошаговая установка Maven
- Для начала нужно установить Maven, скачав его по этой ссылке.
- Далее необходимо распаковать скачанный архив и установить переменной окружения M2_HOME ссылку на местонахождение распакованного архива. Например, C:Program Filesmaven
- Чтобы проверить, что все установилось, в командной строке пропиши: mvn -version
- Если отобразится информация о версии Maven, Java и т.д., все готово к работе.
- Теперь открой IntelliJIDEA и создай новый проект. В первом же окне выбери Maven:
- Нажми Next и заполни следующее диалоговое окно:
- Далее стандартно создай проект в необходимом месте. После того, как проект создался, обрати внимание на его структуру:
Это cтандартная структура для Maven-проекта :
- в папке src/main/java содержатся java-классы;
- в src/main/resources — ресурсы, которые использует наше приложение (HTML-страницы, картинки, таблицы стилей и тд);
- src/test — для тестов.
Еще обрати внимание на файл под название pom.xml . Это и есть главный файл для управления Мавеном . Все описание проекта содержится здесь. Пока там не слишком много информации, но сейчас мы будем ее добавлять.
Имя не распознано как имя командлета
Управление зависимостями в Maven
Возможно, ты встречал словосочетание “менеджер зависимостей” или “dependency manager”. Мавен все это умеет. Благодаря Мавену тебе не нужно тратить кучу времени на поиски нужной библиотеки в интернете, качать ее, а потом подключать к проекту: достаточно добавить необходимую в список зависимостей Мавена. Зависимости записываются в XML-ноду dependencies Скажем, тебе в проекте нужна библиотека Apache Commons IO для упрощенной работы с файлами. Чтобы добавить библиотеку, напиши пять строк в pom.xml:
commons-io commons-io 2.6
Теперь твой pom.xml должен выглядеть так:
4.0.0 example.com example 1.0-SNAPSHOT commons-io commons-io 2.6
После этого разреши IntelliJ IDEA импортировать зависимость (диалоговое окно должно появиться в правом нижнем углу). Теперь библиотека готова к использованию:
import org.apache.commons.io.FileUtils; import java.io.File; public class TestMaven < public static void main(String[] args) < File tempDirectory = FileUtils.getTempDirectory(); >>
- На сайте библиотеки. Если нам нужен Apache Commons IO, переходим на официальный сайт, выбираем вкладку Dependency Information. Здесь есть вся необходимая информация — ее можно просто скопировать и добавить в наш раздел dependencies.
- В Maven-репозитории. В поиске введи “apache commons io”, и ты увидишь все доступные версии библиотеки. После выбора нужной, просто скопируй:
commons-io commons-io 2.6
Виды Maven-репозиториев
Стоит еще раз упомянуть Мавен-репозиторий, потому что их на самом деле у нас два — внешний (глобальный) и локальный, у тебя на компьютере. Все библиотеки, которые ты добавляешь в свои проекты, сохраняются в локальном репозитории. Когда Maven добавляет необходимую зависимость в проект, он сначала проверяет локальный репозиторий на наличие такой библиотеки, и только если не находит ее там — обращается к внешнему. Как видишь, можно использовать Мавен для добавления зависимостей, но это не все, что он умеет делать.
Сборка Java-проекта с помощью Maven
Возможно, новичку эта возможность покажется бессмысленной. Зачем это нужно, если есть IDE? Но нет! Во-первых, на сервере, на котором придется собирать приложение, может не быть не то что среды разработки, но и графического интерфейса. Во-вторых, на больших проектах Мавен лучше справляется с задачами по сборке проекта.
Поэтому не будем томить себя ожиданием, а рассмотрим процесс сборки приложения с использованием Maven.
Фазы
Процесс построения приложения называют жизненным циклом Maven-проекта, и состоит он из фаз (phase). Посмотреть на них ты можешь в IDEA, нажав на Maven>example>Lifecycle в правом верхнем углу:
- clean — удаляются все скомпилированные файлы из каталога target (место, в котором сохраняются готовые артефакты);
- validate — идет проверка, вся ли информация доступна для сборки проекта;
- compile — компилируются файлы с исходным кодом;
- test — запускаются тесты;
- package — упаковываются скомпилированные файлы (в jar, war и т.д. архив);
- verify — выполняются проверки для подтверждения готовности упакованного файла;
- install — пакет помещается в локальный репозиторий. Теперь он может использоваться другими проектами как внешняя библиотека;
- site — создается документация проекта;
- deploy — собранный архив копируется в удаленный репозиторий.
Все фазы выполняются последовательно: нельзя запустить, скажем, четвертую фазы, пока не завершены фазы 1-3. Выполнить запуск фазы можно двумя способами:
- через командную строку: mvn package
- используя Intellij IDEA:
До запуска package выполняются фазы validate, compile, test. Исключение — фаза clean. Ее желательно вызывать перед каждой новой сборкой проекта. Фазы можно перечислить через пробел: mvn clean package.
Также у каждой фазы есть пре- и пост-фазы: например, pre-deploy, post-deploy, pre-clean, post-clean, но используются они довольно редко. Кроме этого, у каждой фазы есть цели (goal). Стандартные цели заложены по умолчанию, дополнительные добавляются Maven-плагинами. Иногда во время какой-то фазы нужно выполнить дополнительный функционал. Для этого существуют Maven-плагины. Список официальных плагинов можно посмотреть на сайте Мавена. Но знай, что еще есть много пользовательских плагинов, которые можно найти на сторонних ресурсах. Ну и естественно, при какой-то экзотической необходимости, у тебя всегда остается возможность написать такой плагин самому .
Плагины
Чтобы добавить Мавен-плагин в проект, его описание, аналогично зависимостям, нужно поместить в pom.xml в тег и . Например, нам нужен плагин для проверки того, что все наши внешние библиотеки используют самые последнии версии. Немного поискав интернете, можно найти этот плагин с инструкцией использования. Установим его groupId, artifactId и version. Пропишем, какие цели он должен выполнить и на какой фазе. В нашем случае проверка зависимостей в текущем pom.xml установлена на фазе validate. Теперь наш “помник” выглядит так:
4.0.0 example.com example 1.0-SNAPSHOT com.soebes.maven.plugins uptodate-maven-plugin 0.2.0 dependency validate commons-io commons-io 2.6
Блог
Как могла пройти моя сборка, в то время как она не должна?
- Post author: admin
- Запись опубликована: 16 декабря, 2022
- Post category: Вопросы по программированию
#java #maven #gradle #gitlab #yaml
#java #maven #gradle #gitlab #yaml
Вопрос:
Итак, я изучаю CI и конвейеры и все такое, и я просто добавил свой файл yaml в свой репозиторий, и он успешно собран и успешно протестирован, но когда я внес изменения в код (я удалил точку с запятой), он по-прежнему говорил, что сборка прошла успешно, хотя он должен сказать, что у него былошибка. Я понятия не имею, не подходит ли мой файл yaml или что это такое.
Я подозреваю, что мой файл yaml не такой, каким он должен быть, но я сделал еще один пост об этом, и я не получил никакой реакции.
Мой файл Yaml:
Мой измененный код:
Очевидно, что код должен выдавать ошибку, поскольку больше нет точки с запятой.
Я также создаю этот проект с помощью gradle и файла yaml, который есть:
build: script: — ./gradlew assemble test: stage: test script: — ./gradlew test after_script: — echo «End CI»
Этот код работает так, как должен (в другом проекте), поэтому я искал версию maven этого кода, но не смог ее найти.
Кто-нибудь может помочь мне подтвердить, что проблема в файле yaml, и помочь мне определить, каким должен быть файл yaml (если это проблема)?
Спасибо!
1. Проверьте, из какой ветки извлекается код с помощью конвейера CI. Если вы ожидаете слияния кода с веткой master или dev, он все равно извлечет ваш старый код.
Ответ №1:
Размещен ли конвейер над вашим полным конвейером для вашей сборки maven? Ваш конвейер ничего не делает, кроме эхо-вывода.
Если вам нужно строить с помощью maven, вам понадобится что-то вроде этого:
image: maven:latest stages: — build — test build_a: stage: build script: — mvn clean install -DskipTests —batch-mode —errors —fail-at-end —show-version build_b: stage: test script: — mvn test —batch-mode —errors —fail-at-end —show-version
1. Я получаю следующую ошибку, пытаясь сделать это: mvn : термин «mvn» не распознается как имя командлета, функции, файла сценария или рабочей программы. Проверьте написание имени или, если был указан путь, убедитесь, что путь указан правильно, и повторите попытку.
2. Вам нужно использовать изображение, на котором установлен maven, например image: maven:latest Я обновил свой ответ, чтобы включить изображение
Источник: programbox.ru