#maven-2 #netbeans #netbeans-platform
#maven-2 #netbeans #netbeans-платформа
Вопрос:
Как использовать плагин Maven Netbeans Module для создания сайта с автоматическим обновлением в качестве артефакта?
Я вижу, что файлы сайта с автоматическим обновлением были сгенерированы в target / directory, но я понятия не имею, как превратить его в артефакт.
Моя конечная цель — внедрить его в war для упрощения установки (я буду использовать плагин зависимостей для распаковки артефакта там).
Ответ №1:
Я не эксперт, но разве создание приложения webstart не является «классическим» способом справиться с этим? Из документации:
Проект / упаковка nbm-aplication определяет жизненный цикл сборки, который создает конечное приложение из файлов nbm в локальных / удаленных репозиториях и объединяет их в zip-файл (также доступный для загрузки в репозиторий) В дополнение к этому вы можете настроить проект на создание сайта с автоматическим обновлением и / или двоичных файлов приложений с возможностью веб-запуска.
<plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>nbm-maven-plugin</artifactId> <executions> <execution> <id>extra</id> <phase>package</phase> <goals> <goal>autoupdate</goal> <goal>webstart-app</goal> </goals> <configuration> <!--distBase>central::default::http://repo1.maven.org/maven2</distBase--> <codebase>${project.build.directory}/webstart/milos</codebase> </configuration> </execution> </executions> </plugin>
Смотрите автоматическое обновлениеи
webstart-цели приложения подробнее
подробности.
но этот плагин не создает артефакт из файлов, которые он генерирует, и в этом моя проблема … потому что мне нужно, чтобы он был распакован в другом месте во время сборки моего проекта «war».
В этом случае я бы использовал плагин Maven Assembly для создания дистрибутива сгенерированных файлов (zip, tar.gz , что угодно) и установите его в свой локальный репозиторий во время сборки. Затем вы могли бы распаковать архив из проекта war с помощью dependency:unpack
.
Комментарии:
1. Спасибо за Паскаль, NetBeans имеет свой собственный способ обработки обновлений, так что программисты модулей имеют возможность обновлять программно и бесшумно. Именно так работает мое приложение на платформе NetBeans, поэтому я не хочу использовать Webstart, я хочу использовать способ автоматического обновления. Я уже видел документацию плагина nbm, но этот плагин не создает артефакт из файлов, которые он генерирует, и в этом моя проблема .. потому что мне нужно, чтобы он был распакован в другом месте во время сборки моего проекта «war».
2. @Vincent Bonjour 🙂 Я хотел получить подтверждение, прежде чем предлагать использовать плагин maven assembly. Я соответствующим образом обновил свой ответ.
Ответ №2:
цель обновления сайта в плагине nbm работает с проектами, упакованными в «pom», а затем создает сайт обновления из проектов из reactor. Он не генерирует артефакт, поскольку проекты pom не могут иметь подключенных артефактов.
затем он также работает в проектах nbm-приложений, где он использует зависимости проекта и создает из него сайт обновления. Затем к основному артефакту прикрепляется gzip сайта обновления (который является zip-файлом приложения, но его создание может быть подавлено параметром, я думаю). если вы объедините этот usecase с параметром URL-адреса дистрибутива nbm, указывающим на ваш репозиторий выпуска, вы фактически получите репозиторий выпуска, равный вашему сайту обновления развертывания и версиям ваших сайтов обновления. Очевидно, что в запущенном приложении вам нужен стабильный URL, поэтому вам нужно будет каким-то образом (вручную, после тестирования) символически связать текущий сайт обновления с этим общедоступным URL.
Ответ №3:
Этому вопросу уже 12 лет, но сегодня я бы сделал это, запустив
mvn nbm: автоматическое обновление
в соответствующем модуле или наборе модулей.