Как сделать свою библиотеку java
Создание и использование библиотеки
Всем привет.
Интересует вопрос: как правильно создать библиотеку, в которой будут находиться классы, различные иконки например, а затем подключать в любое Java приложение.
Создание библиотеки Java
Ребята, абсолютно не понимаю в программировании, но нужно сдавать экзамен(( по Java.. Преподаватель.
Создание собственной библиотеки. java
Здравствуйте! Очень нужно срочно узнать как создавать и затем использовать собственную библиотеку в.
Создание и использование конструкторов
Требуется создать новый класс с именем DateFour, с несколькими конструкторами, а затем.
Создание и использование динамически подключаемой библиотеки (dll)
Разработать библиотеку подпрограмм!! Подпрограммы обработки двухмерного массива: формирование.
А причём тут reflection?
Просто пишеш проект который тебе нужен, экспортируеш его в jar и «библиотека» готова. Потом эту библиотеку нужно прописать в classpath и можеш работать с классами, которые находятся в ней. Как это конкретно сделать в NetBeans почитай в документации, ну или в гугле по «netbeans import jar»
Так же в jar можно поместить и исходники, если это зачем-то нужно.
Все проходит без ошибок.
Ну а дальше уже использую.
Но это очень не удобно, вызывать методы и тд.
Можете показать как вы создаете библиотеку, и по подробнее рассказать про classpath?
Вложения
google-ajax-apis-1.0.63 (1).zip (882.0 Кб, 74 просмотров) |
import com.googleapis.ajax.common.PagedArrayList;
Пишет что не найдено
Добавлено через 9 минут
Class A = Class.forName(«com.googleapis.ajax.common.PagedArrayList»);
Также выбросило ClassNotFoundException
Класс он нашел.
Но почему то прямо из zip он не смог его подключить.
Как быть дальше?
Как все же должна быть сгруппирована библиотека?
Начнем например с того что я создам пакет MyPac и класс MyClass.java.
Добавлено через 2 минуты
XHelp, Не совсем меня поняли, я создал jar файл в NetBeanse, я имел ввиду что в нем находятся ведь только class файлы, а их недостаточно, нужны ведь и исходники, скажем если я хочу дать свою библиотеку кому либо, одного jar будет ведь недостаточно. Я прав?
Нет. Исходники абсолютно никакого отношения к использованию библиотеки не имеют. Это я уже говорил чуть раньше. Что бы было понятно как она работает нужно javadoc’s писать, а не исходники прилогать.
Русские Блоги
Многие программный код мы впервые использовали позже разработки. Например: сортировка алгоритма и т. Д. Избегайте вас переписать эти коды каждый раз, когда вы используете. Если вы можете позвонить нашим собственным блокам кода, когда вы звоните JDK. Ну и как?
К счастью, есть. Не так много ерунды. Обсуждение дешево, покажи мне свой код.
Первый шаг: создайте папку MyLib, чтобы сохранить свой собственный lib. Путь автора: D: \ Java \ JDK \ Mylib
Шаг 2: Установите свой класс.
2, имя класса SwingConsole и имя файла swingconsole.java соответствуют.
В это время вы можете быть рад импортировать в свой собственный код.
Не волнуйтесь, это потому, что вы не компилируйте SwingConsole.java.
Шаг 4: Откройте терминал командной строки: отредактируйте файл SwingConsole.Class, используя javac swingconsole.java.
Эти четыре шага предназначены для создания собственной библиотеки классов. Но используйте, вам нужно импортировать в проект.
Ниже приведен пример идеи Intellij. Импортируйте свой собственный MyLib.
После успеха вы найдете более строки MyLibs во внешней библиотеке.
Тест: Вызовите свою собственную библиотеку классов в своем собственном коде
Как и библиотеки в JDK, вам нужно оператор импорта для импорта.
Впервые напишите блоги из-за ограниченной технологии, неизбежно, что есть лазейка, пожалуйста, оплатите больше очков.
Русские Блоги
Используйте Gradle для создания библиотеки Java
Это руководство проведет вас через процесс использования подключаемого модуля Gradle Build Init для создания новой библиотеки Java, которая может использоваться в других библиотеках и приложениях JVM.
Что ты будешь строить
Вы создадите библиотеку Java, которая следует соглашениям Gradle.
что тебе нужно
Текстовый редактор или IDE
ОдинGradle, Версия 5.0 или выше
Создать проект библиотеки классов
Запустите задачу инициализации
В новом каталоге проекта запустите init Задача и java-library При появлении запроса выберите тип проекта. По другим вопросам нажмите Enter, чтобы использовать значение по умолчанию.
Если вы предпочитаете Kotlin DSL, вы можете выбрать kotlin Сборка скрипта DSL.
В init Задача выполняется первой wrapper Задача, затем сгенерируйте gradlew с gradlew.bat Скрипт упаковки. Затем он создает новый проект со следующей структурой:
Теперь у вас есть компоненты, необходимые для простого проекта библиотеки Java.
Просмотр созданного файла проекта
ВНастроитьФайл сильно прокомментирован, но активна только одна строка:
Создано build.gradle В файле также много комментариев. Активная часть скопирована сюда (обратите внимание, что номер версии зависимости может быть обновлен в более поздней версии Gradle):
Скрипт сборки добавитjava-libraryПлагин. это java-base Расширение плагина и добавление других задач для компиляции исходного кода Java.
файл src/main/java/demo/Library.java Покажи это здесь:
Сгенерированная спецификация JUnit src/test/java/demo/LibraryTest.java Следующее:
Созданный тестовый класс имеет единственныйJUnit 4контрольная работа. Создание тестового экземпляра Library Этот класс назовите это someLibraryMethod Метод и проверьте, истинно ли возвращаемое значение.
Библиотека классов сборки JAR
Для сборки проекта запустите build задача. Вы можете использовать обычный gradle Command, но когда проект содержит сценарий оболочки, вы можете использовать его вместо него.
При первом запуске сборки Gradle проверит
/.gradle Наличие библиотеки JUnit и других перечисленных зависимостей в кэше каталога. В противном случае эти библиотеки будут загружены и сохранены там. В следующий раз, когда вы запустите сборку, будет использована кешированная версия. В build Задача скомпилирует класс, запустит тест и сгенерирует тестовый отчет.
Вы можете просмотреть отчет о тестировании, открыв выходной файл HTML, расположенный по адресу build/reports/tests/test/index.html 。
Пример отчета выглядит так:
Поздравляем, вы выполнили первый шаг по созданию библиотеки Java! Теперь вы можете настроить его в соответствии с потребностями вашего проекта.
Пользовательская библиотека JAR
Обычно вам нужно, чтобы имя файла JAR включало библиотекуверсия. в состоянии пройти version Установите свойства верхнего уровня в скрипте сборки для упрощения реализации, как показано ниже:
Беги сейчас jar задача:
И обратите внимание на сгенерированный файл JAR build/libs/demo-0.1.0.jar Содержит ожидаемую версию.
Чтобы убедиться, что эти изменения работают должным образом, пожалуйста, jar Снова запустите задачу, на этот раз также извлеките файл манифеста из JAR:
Смотри сейчас META-INF/MANIFEST.MF В содержимом файла вы должны увидеть следующее:
Теперь вы можете попробовать скомпилировать код Java, используя библиотеку, которую вы только что создали для выполнения этого упражнения.
Добавить документацию по API
В java-library Плагин передает это javadoc В задачу встроена поддержка инструмента документации Java API.
Код, сгенерированный плагином Build Init, уже находится в Library.java Комментарии добавляются к файлу. Измените комментарий, чтобы он стал javadoc отметка.
пробег javadoc задача.
Вы можете javadoc Просмотрите сгенерированный файл, открыв HTML-файл, расположенный build/docs/javadoc/index.html 。
Резюме
Это оно! Теперь вы успешно создали проект библиотеки Java, упаковали его как JAR и использовали в отдельном приложении. В процессе вы узнали, как:
Создать библиотеку Java
Настройте сгенерированные build.gradle Структура образца файла Java
Запустите сборку и просмотрите отчет о тестировании
Настройте имя файла JAR и содержимое его манифеста
Как создать библиотеку Java: С нуля до Maven Central
Как создать библиотеку Java: С нуля до введения в Maven Central Если ты… С тегами java, maven, библиотека, учебник.
Вступление
Если вам обычно нужно переписать или скопировать похожий код между разными проектами, возможно, пришло время прекратить его копирование и создать библиотеку.
Вы также можете поделиться им с открытым исходным кодом, чтобы другие люди могли использовать его и помочь вам улучшить его.
Итак, давайте пройдем весь процесс и опубликуем библиотеку для заполнения строк. Мы начнем с создания нашего проекта с нуля.
Если вы хотите пропустить создание проекта:
⚠️ ЕСЛИ ВЫ ИСПОЛЬЗУЕТЕ МОЙ ПРОЕКТ, НЕ ЗАБУДЬТЕ ИЗМЕНИТЬ ИДЕНТИФИКАТОР ЕГО ГРУППЫ.
Создание проекта
Выполните следующую команду на своем терминале:
Используйте свой собственный идентификатор группы в команде. Если вы используете библиотеку com.the great.api.demo вы не сможете опубликовать в Maven Central.
Эта команда создаст проект со следующими pom.xml :
Давайте изменим его, чтобы использовать Java 11 вместо 1.7.
Реализация библиотеки
Обратите внимание, что класс является закрытым для пакетов, поэтому клиенты не могут использовать его в своем коде.
Создание Тестов
Теперь мы готовы провести наши тесты.
Наша реализация готова. Следующим шагом будет развертывание нашей библиотеки в Maven Central.
Подготовка pom.xml для развертывания в Maven Central
Следующий шаг – добавить информацию о разработчиках.
А затем добавьте информацию об управлении исходным кодом (SCM). Следующая информация предназначена для моего проекта. Замените его информацией о вашем проекте.
Maven Central требует, чтобы вы отправили Javadoc и исходный код. Поэтому вы должны создать его при создании своих артефактов. Вы также должны подписать артефакты, которые отправляете в Maven Central.
Поскольку нам нужно делать это только при развертывании в Maven Central, было бы неплохо создать профиль для этого.
Вам также необходимо установить клиент GPG и поместить его в путь командной строки. Следуйте инструкциям на https://central.sonatype.org/pages/working-with-pgp-signatures.html для установки клиента GPG.
Кроме того, добавьте nexus-staging-maven-плагин.
Ваша библиотека готова к публикации в Maven Central.
Запрашиваю доступ к Maven Central
Использование хостинга репозитория OSS (OSSRH), предоставляемого Sonatype для любого проекта с открытым исходным кодом, является самым простым способом публикации вашего проекта.
Официально они просят у вас 2 рабочих дня для завершения процесса, но обычно это занимает один или два часа.
Используйте свой собственный идентификатор группы. Если вы используете библиотеку com.the great.api.demo вы не сможете опубликовать в Maven Central.
Они спросят, являетесь ли вы владельцем домена, указанного в groupId, и если да, вам придется подтвердить право собственности. На моем билете они прокомментировали:
В моем случае я добавил текстовую запись в свой DNS. Когда я это сделал, я прокомментировал билет, и они установили для билета значение “Решено”.
Освобождение библиотеки
После подтверждения права собственности на домен вы готовы загрузить свои артефакты. Для этого вы сначала выпускаете его на стадию.
выпуск mvn clean deploy-P для чистого развертывания
На данный момент ваши артефакты хранятся в частном хранилище, поэтому вы можете проверить их перед выпуском. Так что войдите в https://s01.oss.sonatype.org/ используя ваши учетные данные JIRA.
В меню слева нажмите “Промежуточные хранилища”, и вы увидите свою библиотеку.
Если с вашей библиотекой все в порядке, вы можете закрыть ее, в противном случае вы можете удалить ее.
Когда вы закроете его, в нижней части вы можете проверить, успешно ли он был закрыт, нажав на вкладку “Активность”. Вы должны увидеть что-то похожее на это:
Если репозиторий был успешно закрыт, теперь вы можете продвинуть его до выпуска.
mvn nexus-постановка: выпуск – 1005
Используйте свой собственный идентификатор группы. Если вы используете библиотеку com.the great.api.demo вы не сможете опубликовать в Maven Central.
Вы должны увидеть результат, похожий на:
Теперь ваша библиотека опубликована. В этом самом первом развертывании вы должны прокомментировать билет JIRA, чтобы они могли активировать синхронизацию с Maven Central.
Начните Свою Библиотеку Прямо Сейчас
Теперь вы готовы создать свою собственную библиотеку. Это будет здорово для вас и сообщества Java.
Создаем свою первую библиотеку JavaScript
Вы когда-нибудь удивлялись магии Mootools? Вы когда-нибудь задумывались над тем, как Dojo это делает? Вы когда-нибудь интересовались гимнастикой jQuery? В этом уроке мы собираемся скрыться за кулисами и попробовать свои силы в создании суперпростой версии вашей любимой библиотеки.
Мы используем библиотеки JavaScript почти каждый день. Когда вы только начинаете, что-то вроде jQuery кажется просто фантастическим, главным образом из-за DOM. Во-первых, DOM может быть довольно грубым для новичка; это довольно плохое оправдание API. Во-вторых, он даже не согласован во всех браузерах.
Мы обертываем элементы в объекте, потому что хотим иметь возможность создавать методы для объекта.
Еще одна вещь: пока мы не будем писать тесты для этой библиотеки, я сделал это, когда впервые ее разработал. Вы можете получить библиотеку и тесты на Github.
Шаг 1: Создание каркса библиотеки
Мы начнем с кода оболочки, который будет содержать всю нашу библиотеку. Это ваше типичное выражение, которое сразу же вызывается (IIFE).
Как вы можете видеть, мы называем в нашу библиотеку Dome, потому что это прежде всего библиотека DOM. Да, это хромает.
У нас здесь есть несколько вещей. Во-первых, мы имеем функцию; в конечном итоге это будет функция-конструктор для экземпляров нашей библиотеки; эти объекты обернут наши выбранные или созданные элементы.
Шаг 2: Получение элементов
Функция dome.get будет принимать один параметр, но это может быть несколько вещей. Если это строка, мы предположим, что это селектор CSS; но мы также можем взять один узел DOM или NodeList.
Шаг 3: Создание экземпляров Dome
Я действительно рекомендую вам покопаться внутри нескольких ваших любимых библиотек.
Но в чем тут смысл? Почему бы просто не вернуть элементы? Мы обертываем элементы в объекте, потому что хотим иметь возможность создавать методы для объекта; это методы, которые позволят нам взаимодействовать с этими элементами. На самом деле это своя версия jQuery.
Шаг 4: добавление нескольких утилит
Первые функции, которые мы собираемся написать, будут простые служебные функции. Поскольку наши объекты Dome могут обернуть более одного элемента DOM, нам нужно будет перебирать каждый элемент почти в каждом методе; поэтому эти утилиты будут удобны.
Начнем с функции map :
Короткий «Философский» тур
Во-первых, DOM может быть довольно сложным для новичка; это довольно плохое оправдание API.
Для этого проекта я верну текст нескольких элементов в виде массива, если только в массиве нет только одного элемента; то мы просто вернем текстовую строку, а не массив с одним элементом. Я думаю, что вы чаще всего будете получать текст одного элемента, поэтому мы оптимизируем для этого случая. Однако, если вы получаете текст из нескольких элементов, мы вернем вам то, с чем вы можете работать.
Назад к написанию кода
Шаг 5: Работа с текстом и HTML
Как я сказал: почти то же самое.
Шаг 6: Классы
Довольно просто, да?
Теперь, как насчет удаления классов? Для простоты мы разрешим удаление только одного класса за раз.
Шаг 7: Исправление ошибки IE
Это довольно просто, и это не полная реализация (не поддерживает второй параметр), но она будет работать для наших целей.
Шаг 8: Настройка атрибутов
Шаг 9: Создание элементов
Но теперь, когда мы создаем новые элементы, мы захотим вставить их в DOM, верно?
Шаг 10: Добавление элементов
Варианты использования таковы: мы можем захотеть append или prepend
Примечание. Я использую «новый» для обозначения элементов, еще не находящихся в DOM; существующие элементы уже находятся в DOM.
Если мы добавим els к нескольким элементам, нам нужно клонировать их. Однако мы не хотим клонировать узлы при первом добавлении, только в последующие моменты времени. Поэтому мы сделаем следующее:
Наконец, мы фактически добавим элемент:
Итак, в целом вот что у нас получилось:
Метод prepend
Шаг 11: Удаление узлов
Для нашего последнего метода манипуляции с узлами мы хотим иметь возможность удалять узлы из DOM. Легко, действительно:
Просто перебирайте узлы и вызывайте метод removeChild для parentNode каждого элемента. Красота здесь (все благодаря DOM) заключается в том, что этот объект Dome все равно будет работать нормально; мы можем использовать любой метод, который захотим, включая append или prepend его обратно в DOM. Приятно, не так ли?
Шаг 12: Работа с событиями
Наконец, но не в последнюю очередь, мы собираемся написать несколько функций для обработчиков событий.
Как вы, наверное, знаете, IE8 использует старые события IE, поэтому нам нужно будет это проверить. Кроме того, мы будем бросать события DOM 0, просто потому, что можем.
Ознакомьтесь с методом, а затем мы обсудим его:
Вот оно!
Надеюсь, вы попробуете нашу маленькую библиотеку и, возможно, даже немного ее расширите. Как я уже упоминал ранее, она есть на Github вместе с набором тестов Jasmine для кода, который мы написали выше. Не стесняйтесь форкать ее, поиграть и отправить пул-реквест.
Позвольте мне еще раз пояснить: в этом уроке не имелось в виду, что вы всегда должны писать свои собственные библиотеки.
Есть специальные команды людей, которые работают вместе, чтобы сделать большие библиотеки максимально хорошими. Суть здесь заключалась в том, чтобы заглянуть в то, что может происходить внутри библиотеки; Надеюсь, вы подчерпнули здесь несколько советов.
Я действительно рекомендую вам копаться внутри нескольких ваших любимых библиотек. Вы обнаружите, что они не настолько загадочны, как вы могли подумать, и вы, вероятно, узнаете много всего интересного. Вот несколько отличных мест для начала: