Pull to refresh

Comments 31

От воспоминаний о хороших нечитаемых build.xml на 5-10к строк?

Но статья будет не полной, если не упомянуть Apache Ivy
http://ant.apache.org/ivy/
Спасибо, учту. Хотя в ближайший планах аналогичная статья по Maven.

Не надо, 105 статья про указание первой зависимости в maven нафиг никому не нужна.

Посмотрел в календарь. Вроде 2017 на дворе.
Откровенно говооря, тоже не понял, нафига сегодня об этом писать. Кому-то нужен учебный материал? Ну так извините, вот же оно: оно, нет? При этом еще в 2010 написано — и более подробно.

При этом еще в 2010 году в комментариях все обсуждают, что ant уже безнадежно неактуален и смысла о нем говорить нет ;)

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

Потому что если у вас типовой проект — maven, если что-то нестандартное, и хочется скриптов — gradle/sbt/что угодно из той же оперы, но не ant. Все что надо про него знать — что оно еще существует, потому что в свое время много понаписали.
Именно так, учебный материал, статья писалась в рамках подготовки к вебинару для самых начинающих. Пример в той статье (я, кстати, предварительно с ней ознакомился и не только с ней) слишком сложен для новичков.
Помолодел прям :) А примеры для Win никого не удивили? Слеш вот этот в обратную сторону…
Думаю доработать, добавив варианты для Linux.
Примеры для win? Это вы про «скопируйте в Program Files»? А ниче что оно скорее всего не сработает — прав не хватит туда скопировать?
Переработал материал в сторону Linux.

Пожалуйста, не нужно продолжать использовать эту древнюю тулзовину. Есть гораздо более адекватные современности вещи; если хочется лёгкой императивности, то можно взят тот же Gradle.


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

Спасибо за замечанию, обязательно учту на будущее.

Ant, как инструмент, может и древний, но ведь работает. Молоток тоже не вчера изобрели. А зная, что такая штука имеется, можно облегчить себе жизнь. Например в gradle: https://docs.gradle.org/current/userguide/ant.html

junit-4.12.jar и hamcrest-core-1.3.jar и скопируем их в каталог нашего \jre\lib\ext

А потом в другом проекте, использующем другие версии артефактов, всё поломается.

Не надо ничего складывать ext-каталог, если без этого можно обойтись. А обойтись можно в 145% процентах случаев.
Не надо ничего складывать ext-каталог, если без этого можно обойтись. А обойтись можно
Поделитесь — как бы вы поступили в данном случае?
Предпочтительнее использовать ivy.

Без ivy, сделать каталог в проекте, в который складывать необходимые зависимости. При компиляции засовывать этот каталог в classpath. Тэг в ant для этого есть.
использовать ivy

Спасибо, попробую. Что порекомендуете прочесть для быстрого старта?
Официальную документацию, как и всегда Нет, лучше ничего про ivy не читать, почитай лучше про Gradle, можно даже на Хабре :)
ок, спасибо, так и сделаю. Как вообще думаешь, можно что-то простое сделать с Gradle, чтобы показывать начинающим?
Я обычно использую его примерно так, чтоб утрамбовать внутрь все внешние зависимости. Если зависимостей нет, как в твоем случае, то все еще проще. может быть достаточно чего-нибудь в таком духе.

Зашел, почитал, поностальгировал (эх бесшабашная молодость, джарки в либочке и или флешочкой обменивались или все в CVS/SVN зато можно было кофе пойти попить пока новый проект чекапился), закрыл, вернулся к домашнему уютному gradle(работа) и sbt(дом).

А вот если необходимо продемонстрировать Заказчику сборку проекта из исходников на компьютере без интернета.
Куда тут без анта?

Какая разница, таскать кусок .m2/repository или lib, если у вас внешние зависимости есть? А если нет, то mvn clean install.

C gradle все равно будет проще:

dependencies {
    compile fileTree(dir: 'lib', include: ['*.jar'])
}

Это если вас не заломает вытягивать и раскладывать зависимости руками, иначе частичное зеркало maven (например, средствами nginx proxy_pass и proxy_store) тоже вполне себе вариант.

В чём проблема дёрнуть mvn dependency:copy-dependencies для того же?

Вот только все решения требуют наличия
1. всех зависимостей сложенных в кучу (каталог или репозиторий)
2. предварительно написанного скрипта

и в итоге получаем проблему попа и попадьи
Only those users with full accounts are able to leave comments. Log in, please.