Русские Блоги
Многие программный код мы впервые использовали позже разработки. Например: сортировка алгоритма и т. Д. Избегайте вас переписать эти коды каждый раз, когда вы используете. Если вы можете позвонить нашим собственным блокам кода, когда вы звоните JDK. Ну и как?
К счастью, есть. Не так много ерунды. Обсуждение дешево, покажи мне свой код.
Первый шаг: создайте папку MyLib, чтобы сохранить свой собственный lib. Путь автора: D: \ Java \ JDK \ Mylib
Шаг 2: Установите свой класс.
2, имя класса SwingConsole и имя файла swingconsole.java соответствуют.
В это время вы можете быть рад импортировать в свой собственный код.
Не волнуйтесь, это потому, что вы не компилируйте SwingConsole.java.
Шаг 4: Откройте терминал командной строки: отредактируйте файл SwingConsole.Class, используя javac swingconsole.java.
Эти четыре шага предназначены для создания собственной библиотеки классов. Но используйте, вам нужно импортировать в проект.
Ниже приведен пример идеи Intellij. Импортируйте свой собственный MyLib.
После успеха вы найдете более строки MyLibs во внешней библиотеке.
Тест: Вызовите свою собственную библиотеку классов в своем собственном коде
Как и библиотеки в JDK, вам нужно оператор импорта для импорта.
Впервые напишите блоги из-за ограниченной технологии, неизбежно, что есть лазейка, пожалуйста, оплатите больше очков.
Изобретаем велосипед на Java — пишем свой Framework (DI, ORM, MVC and etc)
Все началось с того, что я решил написать свою Java Common библиотеку. Очень часто для типичных задач на Stack Overflow находятся решения в 3-5-10 строк кода. Копипастить себе в проекты надоело. Решил вынести это в отдельную библиотеку, которую можно сделать Open Source и использовать в текущих и будущих своих проектах. Безусловно есть такие хорошие либы как Google Guava и Apache Commons, которые я тоже использую в работе, но они достаточно «правильные» и гибкие, что выливается не в одну строчку кода.
В итоге вечерами дома в свободное от работы время я покрыл за 1 неделю следующие направления: Sleep/Delay/Pause, Timer for Benchmark, Random range generator, File operations, Tasks/Threads, Reflection, JSON, URL, Logging, Strings. Смотрел свои проекты на предмет копи-паста стандартных решений и писал решения в библиотеку. В очередной раз применил TDD подход для разработки библиотеки. Сначала пишешь тест на не существующие классы и методы, а потом реализуешь код, что бы тесты стали зелеными. Решает две проблемы: во-первых, ты пытаешься удобно использовать свои классы и их методы до их реализации, во-вторых, у тебя остаются тесты, которые в будущем могут свалиться, и ты поймешь, что у тебя сломалось при очередном рефакторинге или багфиксе.
Дальше, больше. Я начал анализировать, как я и многие другие, типично использую Spring/JBoss и понял, что legacy и широта возможности все усложняет. Можно реализовать упрощенный типичный Dependency Injection. Сказано, сделано. Добавил в свою библиотеку DI Framework. Мои знакомые смотрели мою реализацию и говорили что разобраться, как устроен Spring просто нереально, там полная жесть наследований и обверток, а у тебя все видно прям на первом уровне реализации и все понятно. Им было интересно, как работать с аннотациями и т. д.
Реализовав DI Framework я задумался над тем, что еще чуть-чуть и будет полноценный Enterprise Server. Осталось добавить ORM и Web-сервер с MVC, REST и security. Все в лучших традициях, так сказать. И меня затянуло. Еще неделька вечерами после работы, ссоры с женой, и получился Simplified Enterprise Server. Я не придерживался стандартов JavaEE, так как писал, как бы мне казалось, было удобно и понятно использовать. Сам я на работе использую Spring Boot, Spring Data, JPA 2.0, Spring MVC, Spring Rest, Spring Security. До этого делал проект на JBoss, видел другую сторону JEE, так сказать. Но вся это универсальность и гибкость конечно в тему. Но когда тебе нужно быстро накидать прототип в стиле JEE или тебе нужно научится кодить серьездные проекты на Java, окунаться в мир Spring, Hibernate и т.д. долго и кропотливо. Единственная альтернатива это Spring Boot, но реально там много происходит скрыто от тебя и если ты не знаешь как работает Spring под капотом, это только тебя тормозит, так как любой шаг в лево или в право это полный нырок в детали…
В итоге код фреймворка на гитхабе github.com/evgenyigumnov/common
Пример веб-сервиса использующего этот фреймворк на гитхабе github.com/evgenyigumnov/example и в онлайне его тоже можно посмотреть java.igumnov.com:8181 Пользователь: demo Пароль: demo
В заключении, буду рад любой критике и предложению по улучшению кода библиотеки. Для себя я получил профит в разминании мозга при написание библиотеки и использовании замыканий/лямбд. Иногда скучно писать коммерческие продукты, хочется создать свой космический корабль. Не стесняйтесь форкать мою либу и самим ее модифицировать под свои нужды. Она достаточно проста и легка для внесения в нее модификаций. Буду признателен, если вы будете присылать пулл-реквесты, чтобы ваши доработки вносились в библиотеку. Я лично настроен достаточно быстро их проверять и принимать. Я просто фанатик-программер, меня это втыкает. Люблю кодить!
PS Да-да, я не люблю писать javadoc, шлите пулл-реквесты с ним, сейчас по коду либы очень понятно, что каждый метод ее делает…
Создаем свою первую библиотеку 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 для кода, который мы написали выше. Не стесняйтесь форкать ее, поиграть и отправить пул-реквест.
Позвольте мне еще раз пояснить: в этом уроке не имелось в виду, что вы всегда должны писать свои собственные библиотеки.
Есть специальные команды людей, которые работают вместе, чтобы сделать большие библиотеки максимально хорошими. Суть здесь заключалась в том, чтобы заглянуть в то, что может происходить внутри библиотеки; Надеюсь, вы подчерпнули здесь несколько советов.
Я действительно рекомендую вам копаться внутри нескольких ваших любимых библиотек. Вы обнаружите, что они не настолько загадочны, как вы могли подумать, и вы, вероятно, узнаете много всего интересного. Вот несколько отличных мест для начала:
Создание и использование библиотеки
Всем привет.
Интересует вопрос: как правильно создать библиотеку, в которой будут находиться классы, различные иконки например, а затем подключать в любое 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 писать, а не исходники прилогать.
Как создать библиотеку 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.