- Зависимости — Java: Настройка окружения
- Именование пакетов
- Открыть доступ
- Download all versions of commons-lang JAR files with all dependencies
- commons-lang from group commons-lang (version 2.5)
- commons-lang from group commons-lang (version 2.4)
- commons-lang from group commons-lang (version 2.3)
- commons-lang from group commons-lang (version 2.2)
- commons-lang from group commons-lang (version 2.1)
- commons-lang from group commons-lang (version 2.0)
- commons-lang from group commons-lang (version 1.0.1)
- commons-lang from group commons-lang (version 1.0)
- commons-lang from group commons-lang (version 20030203.000129)
Зависимости — Java: Настройка окружения
Программисты не пишут весь код с нуля. Большая его часть приходит с библиотеками и фреймворками, которые подключатся к проекту как зависимости. Так говорят потому что код проекта теперь зависит от этих библиотек. Откуда берутся эти зависимости и как их подключать, на эти вопросы мы ответим в этом уроке.
Откуда вообще берутся такие библиотеки? Иногда их делают обычные программисты, такие же как и мы с вами. Иногда за библиотеками стоят компании, как большие так и маленькие. Исходный код этих библиотек почти всегда хранится на github.com и доступен для изучения.
Возьмем для примера библиотеку Apache Commons Lang. Она содержит множество полезных функций на все случаи жизни начиная от генерации случайных чисел, до обработки строк. Исходный код этой библиотеки доступен здесь. Посмотрите файл с методами для строк. Он содержит более 9000 тысяч строчек кода. Правда половина из них комментарии, но все равно внушительно.
Предположим, что мы решили воспользоваться методом для генерации чисел. Выглядит он так:
import org.apache.commons.lang3.RandomUtils; // Где-то внутри метода // Случайное число от 1 до 1000 int x = RandomUtils.nextInt(1, 1000);
Как добавить этот метод к себе в проект? Чтобы разобраться с этим вопросом, надо знать как вообще распространяются библиотеки в Java. Существует специальное хранилище Maven Central (иногда говорят, что это каталог), куда любой разработчик, может выложить свою библиотеку. Здесь можно найти практически все публичные библиотеки для Java. Сам сайт, правда, выглядит страшновато, но им и не придется много пользоваться.
Maven Central популярный, но не единственный источник пакетов. Есть и другие. В компаниях часто используются свои каталоги
У каждого проекта в каталоге есть своя страница. Здесь можно увидеть доступные версии, популярность, наличие критичных ошибок и тому подобное. Сами библиотеки распространяются в виде JAR-файлов, которые можно скачать прямо с сайта.
Попробуем скачать и подключить JAR библиотеки Apache Commons Lang к нашему коду. По порядку:
- На странице библиотеки нажимаем на последнюю доступную версию и попадаем на страницу конкретной версии
- На этой странице находим поле Files и нажимаем на ссылку jar. Браузер предложит скачать файл.
- Скачиваем этот файл и кладем рядом с кодом в проект
Создадим класс, в котором получим случайное число и выведем его на экран:
package io.hexlet; import org.apache.commons.lang3.RandomUtils; public class Example public static void main(String[] args) System.out.println(RandomUtils.nextInt(1, 1000)); > >
После этого директория с кодом будет выглядеть так:
. . ├── Example.java └── commons-lang3-3.12.0.jar
Осталось запустить код. Для этого нужно указать компилятору где искать классы пакета org.apache.commons.lang3. Технически классы располагаются внутри файла commons-lang3-3.12.0.jar. И мы можем напрямую указать этот файл через classpath:
# cp это classpath java -cp commons-lang3-3.12.0.jar Example.java 572
Именование пакетов
В Maven Central есть определенные правила по именованию пакетов, которые стали стандартом де-факто во всей индустрии. Эти же правила применяются и при разработке локальных проектов. Даже редакторы требуют такой структуры. Речь идет про GroupId и ArtifactId.
GroupId – уникальный идентификатор, используемый для всех проектов компании. Даже если у вас нет компании, его все равно надо задавать. По задумке GroupId это домен который вы контролируете, например, org.apache или io.hexlet (в нашем случае). Если у вас нет такого домена, но вы хотите что-то поделать локально, то задайте в редакторе любой домен, какой вам нравится.
ArtifactId – Имя jar-файла без указания версии. В примере выше это commons-lang3. Обычно ArtifactId cовпадает с именем проекта.
Полный путь к пакету проекта строится как GroupId.ArtifactId. Для библиотеки Apache Commons Lang это org.apache.commons-lang3.
Открыть доступ
Курсы программирования для новичков и опытных разработчиков. Начните обучение бесплатно
- 130 курсов, 2000+ часов теории
- 1000 практических заданий в браузере
- 360 000 студентов
Наши выпускники работают в компаниях:
Download all versions of commons-lang JAR files with all dependencies
Commons Lang, a package of Java utility classes for the classes that are in java.lang’s hierarchy, or are considered to be so standard as to justify existence in java.lang.
Artifact commons-lang
Group commons-lang
Version 2.6
Last update 16. January 2011
Tags: classes that utility standard commons justify package java hierarchy lang considered existence
Organization not specified
URL http://commons.apache.org/lang/
License not specified
Dependencies amount 0
Dependencies No dependencies
There are maybe transitive dependencies!
commons-lang from group commons-lang (version 2.5)
Commons Lang, a package of Java utility classes for the classes that are in java.lang’s hierarchy, or are considered to be so standard as to justify existence in java.lang.
Artifact commons-lang
Group commons-lang
Version 2.5
Last update 25. February 2010
Tags: classes that utility standard commons justify package java hierarchy lang considered existence
Organization not specified
URL http://commons.apache.org/lang/
License not specified
Dependencies amount 0
Dependencies No dependencies
There are maybe transitive dependencies!
commons-lang from group commons-lang (version 2.4)
Commons Lang, a package of Java utility classes for the classes that are in java.lang’s hierarchy, or are considered to be so standard as to justify existence in java.lang.
Artifact commons-lang
Group commons-lang
Version 2.4
Last update 19. March 2008
Tags: classes that utility standard commons justify package java hierarchy lang considered existence
Organization not specified
URL http://commons.apache.org/lang/
License not specified
Dependencies amount 0
Dependencies No dependencies
There are maybe transitive dependencies!
commons-lang from group commons-lang (version 2.3)
Commons.Lang, a package of Java utility classes for the classes that are in java.lang’s hierarchy, or are considered to be so standard as to justify existence in java.lang.
Artifact commons-lang
Group commons-lang
Version 2.3
Last update 13. February 2007
Tags: classes that utility standard commons justify package java hierarchy lang considered existence
Organization The Apache Software Foundation
URL http://jakarta.apache.org/commons/lang/
License The Apache Software License, Version 2.0
Dependencies amount 0
Dependencies No dependencies
There are maybe transitive dependencies!
commons-lang from group commons-lang (version 2.2)
Commons.Lang, a package of Java utility classes for the classes that are in java.lang’s hierarchy, or are considered to be so standard as to justify existence in java.lang.
Artifact commons-lang
Group commons-lang
Version 2.2
Last update 07. October 2006
Tags: classes that utility standard commons justify package java hierarchy lang considered existence
Organization The Apache Software Foundation
URL http://jakarta.apache.org/commons/lang/
License The Apache Software License, Version 2.0
Dependencies amount 0
Dependencies No dependencies
There are maybe transitive dependencies!
commons-lang from group commons-lang (version 2.1)
Commons.Lang, a package of Java utility classes for the classes that are in java.lang’s hierarchy, or are considered to be so standard as to justify existence in java.lang.
Artifact commons-lang
Group commons-lang
Version 2.1
Last update 24. November 2005
Tags: classes that utility standard commons justify package java hierarchy lang considered existence
Organization The Apache Software Foundation
URL http://jakarta.apache.org/commons/$/
License The Apache Software License, Version 2.0
Dependencies amount 0
Dependencies No dependencies
There are maybe transitive dependencies!
commons-lang from group commons-lang (version 2.0)
Commons.Lang, a package of Java utility classes for the classes that are in java.lang’s hierarchy, or are considered to be so standard as to justify existence in java.lang.
Artifact commons-lang
Group commons-lang
Version 2.0
Last update 24. November 2005
Tags: classes that utility standard commons justify package java hierarchy lang considered existence
Organization not specified
URL Not specified
License not specified
Dependencies amount 0
Dependencies No dependencies
There are maybe transitive dependencies!
commons-lang from group commons-lang (version 1.0.1)
Commons.Lang, a package of Java utility classes for the classes that are in java.lang’s hierarchy, or are considered to be so standard as to justify existence in java.lang.
Artifact commons-lang
Group commons-lang
Version 1.0.1
Last update 24. November 2005
Tags: classes that utility standard commons justify package java hierarchy lang considered existence
Organization not specified
URL Not specified
License not specified
Dependencies amount 0
Dependencies No dependencies
There are maybe transitive dependencies!
commons-lang from group commons-lang (version 1.0)
Commons.Lang, a package of Java utility classes for the classes that are in java.lang’s hierarchy, or are considered to be so standard as to justify existence in java.lang.
Artifact commons-lang
Group commons-lang
Version 1.0
Last update 24. November 2005
Tags: classes that utility standard commons justify package java hierarchy lang considered existence
Organization not specified
URL Not specified
License not specified
Dependencies amount 1
Dependencies junit ,
There are maybe transitive dependencies!
commons-lang from group commons-lang (version 20030203.000129)
Artifact commons-lang
Group commons-lang
Version 20030203.000129
Last update 08. November 2005
Organization not specified
URL Not specified
License not specified
Dependencies amount 0
Dependencies No dependencies
There are maybe transitive dependencies!
Page 1 from 2 (items total 12)