1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/nutz-nutzboot

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
convert2nb.md 5.8 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
Отправлено 22.04.2025 19:47 4e6c9af

Преобразование обычного проекта JavaEE в проект NutzBoot

Подготовка/Внимание

  • Сначала ознакомьтесь с другими документами, чтобы иметь базовое понимание NB, особенно структуры проекта
  • Исходный проект должен быть Maven-проектом, в противном случае его необходимо преобразовать в структуру Maven-проекта
  • NutzBoot по умолчанию не поддерживает JSP, если требуется поддержка JSP, контейнер должен быть выбран как Jetty

Шаг 1. Скачивание шаблона проекта с get.nutz.io

Адрес: https://get.nutz.io Необходимые проекты: Nutz.Mvc, Jetty

Другие стартеры пока не выбирайте, их можно постепенно добавлять в процессе преобразования!!!

Распакуйте полученный архив в директорию, чтобы получить

- src
	- main
		- java
		    ....
pom.xml	

Шаблон проекта предоставляет стандартизированный pom.xml и базовый MainLauncher класс, что позволяет избежать проблем

Шаг 2. Изменение pom.xml

Копирование зависимостей из исходного проекта

Исключение: javax.servlet-api или servlet-api, так как NutzBoot по умолчанию уже предоставляет их, поэтому добавлять не нужно, иначе проект не сможет запуститься

Шаг 3. Копирование исходных файлов

  • Копируйте директорию src из исходного проекта
  • Переместите src/main/webapp в src/main/resources/webapp/

Шаг 4. Импорт проекта в eclipse/idea

Убедитесь, что компиляция проходит успешно, хотя запуск пока невозможен

Шаг 5. Перемещение MainLauncherПереместите класс MainLauncher в пакет, содержащий MainModule, и измените содержимое метода main на

new NbApp(MainModule.class).setArgs(args).setPrintProcDoc(true).run();

Измените пакет MainLauncher в pom.xml

Внимание Убедитесь, что MainModule находится в верхнем уровне пакета, например

// Неправильный пример
net.wendal.pdf2xxx.main.MainModule
net.wendal.pdf2xxx.module.MainModule
// Правильное положение
net.wendal.pdfxx.MainModule

Если по каким-то причинам MainModule не может быть перемещен, измените метод main следующим образом

NbApp nb = new NbApp(MainModule.class).setArgs(args).setPrintProcDoc(true);
nb.getAppContext().setMainPackage("net.wendal.pdfxx");
nb.run();

Шаг 6. Изменение web.xml

Удалите объявление NutFilter из web.xml

Шаг 7. Изменение класса MainModule

Обычно @IocBy выглядит так, обязательно форматируйте его следующим образом, один параметр на строку

@IocBy(args = {
               "*js",
               "ioc/",
               "*anno",
               "net.wendal.nutzbook.web",
               "*quartz", // Связывает Quartz
               "*async", "128",
               "*tx",
               "*jedis",
               "*slog"
               })

Примечание: Например, строки для quartz и jedis можно закомментировать после добавления соответствующих стартеров.## Проверка конфигурации IOC

  • Обычно в исходном проекте есть файлы dao.js или dao.json или db.js, содержащие объект conf. Нам нужно удалить его определение.
  • Если файлы конфигурации IOC не находятся в src/main/resources/ioc/, переместите их туда.

Попытка запуска

Правой кнопкой мыши на MainLauncher и запустите его.

Возможные проблемы

Ошибка: метод не найден

Вопрос: NoSuchMethod .... setMainModule Ответ: Исходный проект использует старую версию nutz. В pom.xml добавьте следующую зависимость:

		<dependency>
			<groupId>org.nutz</groupId>
			<artifactId>nutz</artifactId>
		</dependency>

Как собрать проект

В командной строке выполните:

mvn clean package

В директории target будет сгенерирован файл.

Дальнейшие действия

  • После добавления зависимости nutzboot-starter-nutz-dao, удалите файлы dao.js или dao.json.
  • После добавления зависимости nutzboot-starter-redis, удалите строку *jedis из @IocBy.
  • После добавления зависимости nutzboot-starter-quartz, удалите строку *quartz из @IocBy и код инициализации Quartz в MainSetup.

Для получения дополнительной информации ознакомьтесь с примерами в директории nutzboot-demo.


Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/nutz-nutzboot.git
git@api.gitlife.ru:oschina-mirror/nutz-nutzboot.git
oschina-mirror
nutz-nutzboot
nutz-nutzboot
dev