Как создать/использовать библиотеку классов с Netbeans поверх Maven?
Это кажется глупым вопросом, но я как бы зависим от волшебников Netbeans 7.1. Кажется, что нет возможности сделать это.
Мое веб-приложение создано с Maven, и я хочу разбить некоторые его пакеты в независимую встроенную и поддерживаемую библиотеку классов (в частности, часть JPA, но это не имеет значения.) Затем я хочу удалить эти пакеты из исходного веб-приложения, а затем создайте зависимость от создаваемого мной артефакта.
Итак, как мне начать? Мастер Newbe Project Netbeans, похоже, не имеет опции для "библиотеки классов Java", как для проектов ANT -built. Самый близкий выбор, который я вижу, - это "Java-приложение". Это то, что я использую и просто игнорирую основной класс, или есть какой-то другой путь, который я не вижу?
Обычно я хорошо разбираюсь в этом, но мои поиски в Интернете не уступают много. Большое спасибо за любую помощь.
Ответы
Ответ 1
Вы можете использовать мастер для "Maven" → "Приложение Java (простое приложение Java SE с использованием Maven)", поскольку в отношении maven нет разницы между libary и приложением. Я думаю, что netbeans создаст образец App.java
, который вы можете просто удалить.
Для вашего использования, имеет смысл также создать родительский проект для библиотеки и веб-приложения. Построение родительского элемента также создало бы библиотеку и веб-приложение. Он также позволяет вам использовать "сборку с зависимостями" в веб-приложении и сначала перестроить библиотеку.
Чтобы создать родительский проект, вы можете использовать запись "POM Project". Структура каталогов идеально выглядит так:
- pom.xml (for parent project)
- library (folder)
- pom.xml (for library module)
- webapp (folder)
- pom.xml (for webapp module)
Затем родительский проект должен содержать элементы module
, содержащие относительный путь ваших других проектов:
<modules>
<module>library</module>
<module>webapp</module>
</modules>
Библиотека и веб-приложение ссылаются на родителя, как и в этом случае, groupId и версия по умолчанию являются такими же, как и родительский:
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>myGroupId</groupId>
<artifactId>parentArtifactId</artifactId>
<version>1.0-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>
<artifactId>libraryArtifactId</artifactId>
Ответ 2
Вы можете начать с Maven > POM Project. Что подходит для библиотек классов.
Также вы можете сделать ваш проект Maven "модульным". Хороший учебник можно найти http://sonatype.com/books/mvnex-book/reference/index.html в главах 8 и 9.
Ответ 3
Я нашел более быстрый способ обновления версий ваших плагинов в pom.xml с помощью NetBeans.
- Найдите плагины → плагин → тег версии в вашем pom.xml
- Дважды щелкните номер версии, чтобы она была подсвечена.
- Нажмите CTRL + SPACE для переключения автозаполнения.
- Всплывающее меню позволяет вам выбирать доступные версии.
![Снимок экрана]()
Ответ 4
Следующее отлично работает для библиотек классов в NetBeans8.1.
Вам нужно будет обновить основные версии плагина в файле Maven (и вы хотите удалить JUnit, если вы его не используете, см. внизу).
НЕ используйте New Project -> Maven -> Java Application
, он НЕ интегрируется с системой меню Maven Dependency в NetBeans-8.1.
Выполните следующие действия:
-
Шаг1: Создайте New Project -> Maven -> Project from Archtype
, затем в архетипическом поисковом фильтре выберите maven-archetype-quickstart
.
-
Шаг2: Нажмите Далее, а затем введите название проекта/модуля (MyLib или MyAPI), затем Готово.
-
Шаг 3: Немедленно (до того, как вы забудете) в Project Settings > Sources
измените исходный/двоичный формат с 1,5 до 1,8 (или другой).
-
Шаг 4: Немедленно (прежде чем вы забудете) в разделе Project Settings > Licence Headers
выберите лицензию.
-
Шаг 5. Создайте новый (или скопируйте из старого проекта) Java-класс или файлы интерфейса и т.д. в разделе "Исходные пакеты" в обозревателе проектов.
-
Шаг6: (необязательно) удалите public class App
, если вы не хотите иметь простой автономный модуль запуска/тестирования модуля.
-
Шаг7: (Очень рекомендуется): обновите основные плагины Maven до последних версий, отредактировав номера версий в pom.xml! Лучшее место для поиска последних версий - проверка папок в основном репозитории плагинов: https://repo.maven.apache.org/maven2/org/apache/maven/plugins/
В рамках любого другого проекта на базе NetBeans Maven новая технология "вверх по течению" или проект API будут предлагаться через Dependendies -> Add Dependency .. (Open Projects subtab)
. Он также будет предлагаться через систему управления репозиториями при поиске библиотеки Maven через Add as Dependency
.
Если вы хотите добавить общие/разделяемые библиотеки, просто добавьте их через свой модуль MyLib или MyAPI, используя функцию Maven Dependencies; они будут распространяться на любой модуль "вниз по течению", который добавит ваш MyLib или модуль MyAPI в качестве зависимости.
Дополнительно: Кроме того, ваш pom.xml по умолчанию будет включать JUnit:
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
Просто удалите его, если вы этого не хотите.