То, в чем мы нуждаемся в нашей фирме, является своего рода инструментом управления версиями для Linux/C++. Наши продукты состоят из нескольких библиотек и файлов конфигурации. Здесь я перечислю основные характеристики, которые мы хотим, чтобы такая система имела:
Способность отследить зависимости, легко увеличьте основные версии библиотек, зависимости которых увеличили свою основную версию. Это должно создать своего рода граф зависимостей внутренне, таким образом, это может знать, кто затронут обновлением.
Знайте, как создать продукты, которые это обрабатывает. Или определенный файл типа "build" или еще лучше - способность читать и понять make-файлы.
Работа с SVN, таким образом, это может проверить на новые выпуски оттуда и делает сборку.
Генерируйте некоторые установщики - в об/мин или tar.gz формате. С этой целью это должно смочь понять формат файла спецификации об/мин.
В настоящее время мы работаем над таким инструментом, который уже довольно применим. Однако я полагаю, что наша задача не уникальна и должен быть некоторый инструмент там, который делает задание.
В проекте, над которым я сейчас работаю, мы используем cmake и другие инструменты Kitware для решения большинства этих проблем для машинного кода (C ++). Отвечая по пунктам:
Скрипты cmake обрабатывают зависимости для наших различных проектов. У нас есть граф зависимостей, но я не знаю, это самодельный скрипт или это функциональность, которую предоставляет cmake.
Итак, cmake генерирует make-файлы, относящиеся к платформе. Я создаю проекты для eclipse cdt и visual studio, если его попросят сделать это в случае разработки.
В Cmake есть несколько инструментов, ctest и cdash, которые мы используем для ежедневной сборки и просмотра результатов теста.
Для создания установщика в cmake есть cpack. Всего из одного сценария он может генерировать файлы tar.gz, deb или rpm в Linux или автоматически сгенерированный сценарий NSIS для создания установщиков в Windows.
Для кода Java мы используем maven и hudson, о которых здесь уже упоминалось.
Вам следует рассмотреть возможность использования смеси между Hudson, Maven (для управления сборкой), Ivy (для управления зависимостями) и Archiva (для архивации артефактов).
Также, если вы ищете кросс.компиляцию, обратите внимание на Make Project Creator (MPC) и Bakefile.
Удачи!!!
Имена переменных экземпляра начинаются в ruby с @ eg. @ переменная
. Вы можете получить доступ к ним с этим именем из модуля, который вы включаете
module M
def t
@t
end
end
class A
include M
def initialize(t)
@t= t
end
end
A.new(23).t # => 23
Если вы не хотите получить доступ к @ t
, когда он не определен в вашем классе, прежде чем вы сможете сделать этот путь
module M
def t
instance_variable_defined?("@t") ? @t : nil
end
end
-121--2457407- вы можете прервать предыдущий запрос
var xhr = null;
$('#SearchField').keyup(function(e) {
if (xhr !== null) xhr.abort ();
xhr = $.post(
...
);
});
или задать идентификатор для каждого запроса. по завершении запроса, если больший идентификатор уже возвращается, игнорируйте ответ. в противном случае сохраните идентификатор.
-121--4746152-Maven имеет собственный подключаемый модуль кода . Я не думаю, что он сделает все, что вы хотите, но он хорошо отслеживает номера версий зависимостей, построит артефакты и будет работать с вашим VCS.
Взгляните на эту статью от DDJ, в которой представлена и реализована более надежная концепция системы сборки (чем make). Не уверен, что он будет соответствовать вашим требованиям, но он самый близкий из тех, что я когда-либо видел. Я искал то же самое несколько месяцев назад, а потом обнаружил статью.