В современных Javascript (FF4 +, IE9 +, Chrome 5+, Safari 5.1+, Opera 11.60+) есть Object.defineProperty
. Этот пример в MDN очень хорошо объясняет, как работает defineProperty
, и делает возможным динамические геттеры и сеттеры.
Технически это не будет работать на любом , но если ваши действительные геттеры и сеттеры определяются, например, вызовом AJAX на сервер JSON-RPC, например, вы можете использовать это следующим образом:
arrayOfNewProperties.forEach(function(property) {
Object.defineProperty(myObject, property.name, {
set: property.setter, get: property.getter
});
});
Это намного лучше, чем муравей, потому что для наиболее распространенных задач Вы не должны писать сложный build.xml, у знатока есть очень хорошие значения по умолчанию, и это - вся конвенция по конфигурации.
Это имеет также большой центральный репозиторий библиотек, и очень легко настроить его к, как, "используйте последнее стабильное свободное городское население - безотносительно". Знаток затем загрузит последнюю стабильную версию для Вас (больше никакой регистрации в банках в VCS) и если новая восходящая стабильная версия будет выпущена, то это загрузит его также. Конечно, столь же легко заблокировать его к некоторой определенной версии, должен Вы нуждаться в этом.
Это также хорошо интегрируется и с Netbeans и с Eclipse (m2eclipse плагин), таким образом, IDE соблюдает любые настройки (включая зависимости), Вы объявляете в файле pom.xml.
существуют также некоторые оборотные стороны знатоку: некоторые плагины скорее плохо документируются, интеграция с обоими IDE не действительно прекрасна, и что по-разному, некоторые сообщения об ошибках может быть трудно понять.
на предприятии муравей все еще, укрепляет плеер. зависимости не изменяются быстро. в отличие от проектов с открытым исходным кодом, которые продолжают движение к справедливо новейшей версии зависимых банок, БОЛЬШИНСТВО предприятий пытается НЕ изменить свои зависимости слишком быстро. Учитывая, что, преимущества знатока не слишком много по сравнению с муравьем.
С другой стороны, если Вы хотите некоторые функции знатока, у людей муравья есть плющ ( http://ant.apache.org/ivy/ ) для функции зависимостей.
, ЕСЛИ Вы хотите продолжить использовать муравья, овладейте "МУРАВЬЕМ В ДЕЙСТВИИ", 2-й выпуск так, чтобы можно было использовать муравья для лучшей производительности.
Удача,
Муравей является все еще крупным игроком. По моему опыту, это является доминирующим. Плюс, с Ivy, это обрабатывает некоторые преимущества Знатока. IMO, Муравей станет платформой для других инструментов: XML слишком тверд (см. ссылку ниже).
Знаток 2 является также крупным игроком. Я знаю людей, которые вполне как он и щетина при критических замечаниях, которые были верны для Знатока 1 (это проделало длинный путь).
Groovy предлагает некоторый интересный материал в пространстве сборки, потому что они основываются на Муравье. Gant используется в Grails, но может быть включен в категорию в Gradle. Они могут использоваться для Java также.
Рискуя жалким мой собственный блог, вот сообщение о Gant и Gradle. Вот ссылка на очень текущие дебаты об их будущем.
Некоторые люди как Ivy, который является зависимостью руководящая штука для Муравья, таким образом, я предполагаю, что людям, происходящим из среды Муравья, понравится он.
Другие как Buildr. Это - вещь JRuby, поэтому если можно манипулировать Ruby и Java в тех же проектах, затем я предполагаю, что это будет интересно.
Лично, я просто использую Знаток . Легко сделать на скорую руку файл pom.xml по умолчанию и иметь все команды сборки в Вашем распоряжении. И когда проект растет, Вы уже имеете в распоряжении инфраструктуру для рабочих плагинов и добавляющих зависимостей.
Вы также имеете Gant. Gant является Groovy + Муравей, можно записать задачи в отличной плоскости, и можно также назвать любую задачу Ant. Если Вы - магазин Java и хотите снова использовать навыки муравья, Вы имеете, но не любите XML, я рекомендую Gant, это ver легкий установить, и можно встроить его в муравья (и также назвать gant от муравья).
Мне действительно нравится SCons, который является инструментом сборки, конфигурационные файлы которого - все просто сценарии Python. Это обратится к любому, кто знает Python или подобные языки сценариев. SCons разработан для работы хорошо с Java, а также C/C++ и другими языками, и я был очень удовлетворен им в прошлом.
, поскольку файлы SCons записаны в Python, можно написать произвольный код Python, если Вы должны, чтобы сделать что-либо специальное. Однако, если Вы будете абсолютно незнакомы с Python, то затем возможно будет кривая высшего образования, чем попытка расширить Муравья или что-то подобное, чтобы сделать то, что Вы хотите.
Maven2, кажется, и ближайшая вещь.
Для наших проектов однако мы мигрируем назад на муравья по возможности.
Maven2 требует, чтобы довольно мало знания получило его точно способ, которым Вы хотите, и версии Maven2, кажется, обрабатывают пути к классам по-другому.
И это - боль для проверки всех лицензий, включенных в зависимости зависимостей, которые могут подойтись к концу.
И может иметь более медленное время запуска, поскольку необходимо выяснить зависимости сами, но по крайней мере это легко читаемо. Никакое волшебное продолжение здесь :)
при использовании знатока не уделяет внимание внутреннему репозиторию как Nexus. Тем путем Ваше программное обеспечение не мертво, если некоторые библиотеки решают уйти от net*.
*We был записан с maven1; перенаправления репозитория ibiblio maven1 и maven1 не поддерживают перенаправления :(
Вы уже найдете некоторые ответы в , Каков некоторый хороший Java, делают утилиты? .
Я убедил бы Вас запуститься со своих требований при рассмотрении правильного инструмента. Каждый проект отличается, инструмент, который Вы используете, должен отразить пространство задач не вид.
Однако я думаю для муравья общего использования, все еще, вероятно, лучший общий инструмент для создания JAVA-приложений. Это часто используется эффективно с другими инструментами для управления зависимостью, но там мы идем, снова окаймляя прочь в решение без проблемы.
очень хорошие новости, то, что, если Ваш процесс является хорошими инструментами сборки переключения, довольно безболезненный процесс - урок - запускается с хорошего процесса, масштабируемого к проблеме под рукой.