Возможно, ваше условие2 не возвращает правильное значение, иначе ваш код должен работать. Пример рабочего кода:
контроллер
$scope.condition = 'y';
$scope.condition2 = 'x';
css
.classOne{
color: red;
}
.classTwo{
color: blue;
}
html
<div ng-class="(condition == 'x') ? 'classOne': (condition2 == 'x')?'classTwo':'classThree'">ok</div>
В этом случае, к сожалению, , SO не сказал нам много, что мы уже не знали (и действительно, инструмент, который мы в конечном итоге выбрали, не был упомянут ни в одном ответе). Тем не менее, я публикую здесь наш опыт, так как позже он может быть полезен другим.
Мы (быстро) оценили следующие инструменты установщика, в основном, просматривая их веб-сайты и просматривая другую информацию в Интернете: Фактический установщик , Расширенный установщик , BitRock InstallBuilder , Inno Setup , Install Creator , Установщик VISE для Windows , InstallShield , install4j , IzPack , NSIS , openInstaller , Scriptlogic MSI Studio , Smart Install Maker , Установка Symantec Wise Studio и WiX .
Мы отобрали большинство из них на ранних этапах и в итоге отобрали два варианта для более тщательной оценки: BitRock InstallBuilder и install4j . Для этих инструментов мы загрузили ознакомительные версии и сделали несколько прототипов, чтобы посмотреть, действительно ли поддерживаются наиболее важные для нас вещи, и насколько легко или сложно заставить их работать.
Оба варианта были хороши в многие вещи (и обе казались хорошей альтернативой InstallAnywhere):
Мы отобрали большинство из них на ранних этапах и в итоге отобрали два варианта для более тщательной оценки: BitRock InstallBuilder и install4j . Для этих инструментов мы загрузили ознакомительные версии и сделали несколько прототипов, чтобы посмотреть, действительно ли поддерживаются наиболее важные для нас вещи, и насколько легко или сложно заставить их работать.
Оба варианта были хороши в многие вещи (и обе казались хорошей альтернативой InstallAnywhere):
Мы отобрали большинство из них на ранних этапах и в итоге отобрали два варианта для более тщательной оценки: BitRock InstallBuilder и install4j . Для этих инструментов мы загрузили ознакомительные версии и сделали несколько прототипов, чтобы посмотреть, действительно ли поддерживаются наиболее важные для нас вещи, и насколько легко или сложно заставить их работать.
Оба варианта были хороши в многие вещи (и обе казались хорошей альтернативой InstallAnywhere):
Мы отобрали большинство из них на ранних этапах и в итоге отобрали два варианта для более тщательной оценки: BitRock InstallBuilder и install4j . Для этих инструментов мы загрузили ознакомительные версии и сделали несколько прототипов, чтобы посмотреть, действительно ли поддерживаются наиболее важные для нас вещи, и насколько легко или сложно заставить их работать.
Оба варианта были хороши в многие вещи (и обе казались хорошей альтернативой InstallAnywhere):
Мы отобрали большинство из них на ранних этапах и в итоге отобрали два варианта для более тщательной оценки: BitRock InstallBuilder и install4j . Для этих инструментов мы загрузили ознакомительные версии и сделали несколько прототипов, чтобы посмотреть, действительно ли поддерживаются наиболее важные для нас вещи, и насколько легко или сложно заставить их работать.
Оба варианта были хороши в многие вещи (и обе казались хорошей альтернативой InstallAnywhere):
В следующих случаях install4j казался лучше BitRock для наших нужд (многие из них, конечно, субъективны, поэтому YMMV):
Итак, в конечном итоге мы пошли с install4j . Вот еще несколько подробностей о том, почему это было впечатляюще:
Sun предлагает установщик с открытым исходным кодом:
Я уверен, что все запрошенные вами функции поддерживается.
Но мне кажется, что его немного сложно настроить.
Но угадайте, что: У него есть не только графический интерфейс, но и (псевдографический) интерфейс командной строки.
Хорошие скриншоты и информация здесь .
Мы создали BitRock InstallBuilder , кроссплатформенный инструмент установки после некоторых неприятных событий с InstallAnywhere и особенно его двоюродный брат (ныне несуществующий) InstallShield MP. Более половины наших клиентов используют наш инструмент для упаковки программного обеспечения на основе Java, но этот инструмент является нативным, а не на основе Java. Это означает, что у нас есть ряд преимуществ, таких как собственный внешний вид (в том числе Vista, GTK, Qt и т. Д.), И нам не нужно выполнять самораспаковывание перед установкой (более быстрый запуск, меньше места), чтобы упомянуть пару. Чтобы ответить на ваши конкретные вопросы:
Я видел, как несколько человек рекомендуют IzPack , но я, честно говоря, не знаю, если это соответствует вашим требованиям. Это как минимум бесплатно :)
Я могу поручиться за izPack . Он основан на Ant, поэтому вы можете упаковать в него установку Ant, и эта установка Ant может содержать пользовательские задачи и / или сценарии, написанные в вашем Ant build.xml (например, с использованием Groovy, Beanshell или любого языка сценариев с поддержкой BSF). Так что это покроет ваши настраиваемые требования.
Я использовал его в прошлом для всего вышеперечисленного - разархивирование / services / custom code. Он мультиплатформенный, хотя я не могу поручиться за этот конкретный пример выше (64-битная Windows). Но если он работает на Java, у вас все будет в порядке.
Единственная головная боль - JRE. Очевидно, вам потребуется немного JRE для запуска этого. Однако я думаю, что вы сможете собрать и выполнить определенную установку JRE в izPack.
Jonik, спасибо за публикацию такого подробного отзыва о вашем опыте. Я хотел написать дополнительный ответ, так как вы подняли несколько хороших вопросов.
После того, как определенные базовые требования выполнены (что, к сожалению, InstallAnywhere больше не выполняется), на самом деле появляются не «плохие» или «хорошие» инструменты, а скорее инструменты которые лучше подходят для некоторых проектов. Кажется, вы тщательно изучили все параметры, и install4j будет работать лучше для вашего проекта. Вероятно, это хороший выбор, поскольку у вас есть существующая кодовая база Java из вашего предыдущего установщика, которую вы хотите использовать повторно (хотя я хотел бы подумать, что часть этого кода не понадобится в InstallBuilder:)
Что касается InstallBuilder, мы поддерживаем настройка последовательности экранов с помощью тега
Наконец, в отношении лицензирования наша текущая модель не требует покупки дополнительные лицензии, если эти дополнительные программисты будут просто собирать установщики (не проектируя их) или приобретать дополнительные лицензии для машин сборки или непрерывной интеграции. В любом слючае,
Я рекомендую взглянуть на cmInstall , который можно найти по адресу http://sourceforge.net/projects/cminstall/
Он соответствует почти всем вашим требованиям и имеет открытый исходный код. Плюс я один из его разработчиков:).
[yes - or you can programatically download & unzip it ]Must support bundling a specific version of JRE; at the very least by including a ZIP to be extracted
6.[no - it needs jdk 1.6 installed, support for .exe or .msi is planned for future]Preferably does not depend on a preinstalled JRE (or any other 3rd party runtime environment or library) on target machine; in other words, can produce an independent Windows .exe (or .msi)
[да] Этот инструмент предпочтительно должен быть кроссплатформенным, чтобы разработка установщика могла выполняться на Linux, Windows или Mac.
7. [нет - платформа cminstall «основана на разработчике» - но прост в использовании. Просто прочитайте учебники из http://sourceforge.net/project/showfiles.php?group_id=250019&package_id=305489 и посмотрите, как легко создать установщик!] Желательно иметь достойный графический интерфейс для сборки установщика. Однако, как только это будет сделано, должна быть возможность пропустить графический интерфейс и сделать сборку установщика частью автоматизированного процесса сборки.
Развертывание в многоплатформенной среде всегда является большим источником проблем. Считается, что оптимальным решением будет создание собственных пакетов для всех платформ, таких как RPM, DEB или MSI ... тех, которые можно было бы установить автоматически.
Разработчикам следует работать над самовосстановлением и запуском приложения. без установки.
Это позволит свести к минимуму усилия по развертыванию.
Я знаю, что это не совсем подходящее решение, как вы спрашивали, но иногда вы можете получить лучшие результаты таким образом.
Помните, что вы получите бесплатную услугу обновления. в Linux, если вы последуете этим.
Я все еще надеюсь, что Microsoft добавит что-то похожее на MSI (и это не потребует от вас регистрации). А для Windows вы можете взглянуть на программу обновлений Google, только что выпущенную с открытым исходным кодом - http: