Создание файла библиотеки Java с помощью IntelliJ IDEA

java
Вопрос:Я пытаюсь создать библиотеку, которая может быть использована в других проектах. Я написал один класс с несколькими статическими методами, чтобы сделать некоторые вещи. Я хотел попробовать, но я не могу использовать импортированный файл JAR. Я скомпилировал свой код как артефакт и взял файл JAR из папки "out", а затем скопировал его в другой проект. После

Вопрос:

Я пытаюсь создать библиотеку, которая может быть использована в других проектах. Я написал один класс с несколькими статическими методами, чтобы сделать некоторые вещи. Я хотел попробовать, но я не могу использовать импортированный файл JAR.

Я скомпилировал свой код как артефакт и взял файл JAR из папки “out”, а затем скопировал его в другой проект. После этого я пошел в “Структура проекта”, вкладку “Библиотеки” и нажал кнопку “плюс”. Я нашел файл JAR и выбрал его, после чего IDEA попросил меня указать зависимости, поэтому я это сделал, но когда я хочу использовать его в коде, я не могу этого сделать. Его даже нельзя импортировать.

Class from library not recognized

Любые идеи, почему он игнорирует мою библиотеку? Спасибо!

Что мне делать, чтобы создать JAR-библиотеку с IntelliJ IDEA, которая может использоваться в других проектах?

Лучший ответ:

Я понял, в чем была моя проблема. Когда я создал библиотеку, я пытался сделать ее простой. Слишком просто, к сожалению. У меня был пакет с классом, который был скомпилирован в JAR. Структура, показанная ниже:

foo | |_ MyLib.java

Однако, чтобы использовать классы из созданной библиотеки JAR, они должны быть помещены в пакеты. Это означает, что если у меня есть:

foo | |_bar | | | |_MyInnerLib.java | |_MyOuterLib.java

Я могу импортировать и использовать методы из MyInnerLib, но MyOuterLib недоступен и не импортируется. Это была ошибка, которую я делал.

Ответ №1

Вы столкнулись с очень распространенной проблемой управления зависимостями.

IMO реальным ответом является использование системы сборки, такой как Maven, Ant или Gradle (я бы пошел Gradle сам). То, что вы пытаетесь сделать, является ручным, трудновоспроизводимым и хрупким.

Каждый раз, когда вы вносите изменения, вам придется пройти вручную, чтобы создать новый JAR. И вы действительно не понимаете своих зависимостей.

Чтобы изо всех сил использовать лучшие методы, вы должны иметь реальную систему сборки, которая публикует на сервере непрерывной интеграции, который компилирует и запускает тесты. При успешном завершении тестов JAR публикуются на сервере артефактов (Nexus/Artifactory).

Люди, с которыми вы делитесь, будут использовать JAR через систему сборки, объявляя зависимости от вашего JAR.

Оцените статью
Добавить комментарий