Как использовать плагин Maven Netbeans Module для создания сайта с автоматическим обновлением в качестве артефакта?

#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: автоматическое обновление

в соответствующем модуле или наборе модулей.