Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java tools & IDE's > Maven


Автор: sergioK1 20.11.2011, 03:04
В двух словах что он дает, чего нехватало без него ?,  конечно потом  планирую разбираться сам 

Автор: Nofate 20.11.2011, 18:14
В первую очередь maven позволяет один раз указать, какие версии каких библиотек вы используете в проекте и быть уверенным, что при последующих сборках будут использоваться именно они. При этом практически не нужно забивать голову и тратить время на поиск и установку зависимостей для этих библиотек.

Кроме того, можно управлять процессом сборки проекта и его фазами.

Т.е. в идеале у вас есть исходники и maven-овский pom-файл со списком используемых вами библиотек и (опционально) описанием фаз сборки. Вы набираете в командной строке 'mvn package' и получаете на выходе скомпилированный, протестированный, собранный и упакованный артефакт вашего проекта.

При этом на разных фазах сборки может происходить все, что вашей душе угодно: прогонка тестов, операции над файлами, работа с архивами, отправка/получение каких-либо данных во внешние системы, заворачивание всего проекта в инсталлятор, развертывание на удаленном сервере. Эта гибкость достигается применением плагинов, которые включаются в нужные моменты жизненного цикла сборщика. Разумеется, любую фазу сборки можно запустить отдельно, например, прогнать юнит-тесты или собрать данные о качестве исходного кода в sonar.

Кроме того, сложные проекты можно разбивать на дочерние. При этом общие зависимости и особенности сборки указываются один раз в родительском pom-файле.

Автор: sergioK1 20.11.2011, 22:08
Цитата(Nofate @ 20.11.2011,  17:14)
В первую очередь maven позволяет один раз указать, какие версии каких библиотек вы используете в проекте и быть уверенным, что при последующих сборках будут использоваться именно они. При этом практически не нужно забивать голову и тратить время на поиск и установку зависимостей для этих библиотек.

Кроме того, можно управлять процессом сборки проекта и его фазами.

Т.е. в идеале у вас есть исходники и maven-овский pom-файл со списком используемых вами библиотек и (опционально) описанием фаз сборки. Вы набираете в командной строке 'mvn package' и получаете на выходе скомпилированный, протестированный, собранный и упакованный артефакт вашего проекта.

При этом на разных фазах сборки может происходить все, что вашей душе угодно: прогонка тестов, операции над файлами, работа с архивами, отправка/получение каких-либо данных во внешние системы, заворачивание всего проекта в инсталлятор, развертывание на удаленном сервере. Эта гибкость достигается применением плагинов, которые включаются в нужные моменты жизненного цикла сборщика. Разумеется, любую фазу сборки можно запустить отдельно, например, прогнать юнит-тесты или собрать данные о качестве исходного кода в sonar.

Кроме того, сложные проекты можно разбивать на дочерние. При этом общие зависимости и особенности сборки указываются один раз в родительском pom-файле.

Не понимаю до конца , зачем мне  указывать  версию если у меня есть жар,  т,е до сих пор Я качал нужный мне жар и указывал его в класс пас ,
т,е, был нужен хибернет качал , был нужен SWT тоже качал и т,д, не могу сказать что всегда все шло гладко но вообщем все решалось довольно малой кровью ,
это Я про проект с жаром в 17мега

о каких зависимостях идет речь ?,  что зависит от чего ? 
тут Я так понимаю жар скачивать не нужно т,к он сидит в репозитори  это так ?   если можно то конкретный пример как это указаваеться 


Автор: Stolzen 21.11.2011, 07:22
Цитата(sergioK1 @  20.11.2011,  23:08 Найти цитируемый пост)
Не понимаю до конца , зачем мне  указывать  версию если у меня есть жар

Чтобы избежать jar hell - т.е. появления нескольких одинаковых библиотек разных версий.


Цитата(sergioK1 @  20.11.2011,  23:08 Найти цитируемый пост)
о каких зависимостях идет речь ?,  что зависит от чего ? 

Вот например вы используете hibernate - значит ваше приложение от него зависит.

Цитата(sergioK1 @  20.11.2011,  23:08 Найти цитируемый пост)
тут Я так понимаю жар скачивать не нужно т,к он сидит в репозитори  это так ?   если можно то конкретный пример как это указаваеться 

Самостоятельно - нет, не нужно. Maven это сделает за вас.

Примеры можно погуглить по запросу "maven dependency example"

Автор: sergioK1 21.11.2011, 13:16
Цитата(Stolzen @ 21.11.2011,  06:22)
Примеры можно погуглить по запросу "maven dependency example"

Oщущение что примеры обьясняют не сначала а с середины , понятно вобщем - не понятно какие кнопки жать , есть что нидь простое, без воды,
 нажми это нажми то , пропиши либы запусти ,  а суть мне и так понятна,

 Да и что делать есть связь с вебом медленная или обрываеться или ее вообще нет ( в больших корпорациях довольно часто  сознательно перекрывают доступ в сеть  )? 

Автор: Stolzen 21.11.2011, 13:24
Зачем жать? Там никаких кнопок жать не нужно.
Берете чистый pom в котором только указан artifactId (имя проекта) и версия: 

Код

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">

    <modelVersion>4.0.0</modelVersion>
    <groupId>some.group</groupId>
    <artifactId>atifactName</artifactId>
    <packaging>jar</packaging>
    <version>0.0.1-BUILD-SNAPSHOT</version>

</project>


Следующий шаг - добавляете нужные зависимости. Создаете в разделе "project" раздел "dependencies":
Код

    <dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.7</version>
            <scope>test</scope>
        </dependency>
    </dependencies>


В принципе, все.

Автор: griga 22.11.2011, 15:22
http://black-zorro.com/mediawiki/%D0%9D%D0%B0%D0%B2%D0%BE%D0%B4%D0%B8%D0%BC_%D0%BF%D0%BE%D1%80%D1%8F%D0%B4%D0%BE%D0%BA_%D0%B2_%D1%80%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B5_%D0%9F%D0%9E_%D0%B2%D0%BC%D0%B5%D1%81%D1%82%D0%B5_%D1%81_maven._%D0%A7%D0%B0%D1%81%D1%82%D1%8C_1

здесь все хорошо на русском расписано

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)