Этот вопрос не совсем о лучших методах или архитектуре, а о том, как конкретно настроить Hudson и Maven для выполнения того, что я хочу. Я немного потерян.Использование Hudson и Maven для выпуска приложения для нескольких платформ
У меня есть приложение Java, которое использует SWT, и мне нужно создавать копии для разных платформ. На данный момент мне нужны только Linux i386 и Linux amd64, но в будущем мне также нужно добавить Windows x86/x64, поэтому я хочу убедиться, что в первый раз я настроил его правильно.
Мое приложение имеет все зависимости и другую информацию, перечисленные в Project pom.xml, включая различные банки SWT для захвата в зависимости от ОС, арки и семейства.
Мой вопрос в том, как мне строить сборки для Linux i386 и linux amd64 с минимальным дублированием конфигурации? Сейчас я делаю следующее:
- Проект определяет всю зависимость в pom.xml, и этот проект установлен построить в Гудзон и развернуть в результате .jar для Nexus
- Builder-Linux-i386 прогонов после проекта и указывает любые файлы JNI для i386 и использует de.tarent maven-pkg-plugin, чтобы захватить проектную банку из Nexus и собрать ее вместе со всеми зависимостями в один файл «fat» jar, а затем в файл .deb для установки.
- Builder-Linux-amd64 делает то же самое, но для amd64 файлов
Я пытался определить, какие зависимостей для использования в Builder проектов путем добавления -P profilename
к их Hudson проектов, где profilename
является профиль с именем в проекте pom. Maven, похоже, не нравится, и печатает, что он не активирует этот профиль. Он использует только профиль по умолчанию из pom проекта.
Каков правильный способ установить это? Я хочу иметь все мои зависимости, указанные в моем проекте pom, и иметь проект Hudson, который компилирует банку для этого проекта и развертывает его в Nexus, а затем независимых проектов, которые захватывают эту банку и собирают ее вместе с платформой файлы для выпуска. Я не хочу многократно создавать весь оригинальный проект, и я не хочу иметь тонну дублированной информации о конфигурации или скопированных копий.
У меня есть работа для unix-amd64 только потому, что это то, что строительная машина, поэтому Maven нацеливается на эту архитектуру. Кроме того, я чувствую, что настройка не такая чистая, как может быть. Совет?
Это не имеет значения. Maven замечает флаг -P просто отлично и печатает, что он не активирует профиль. – gdm
В чем причина его не активирования? –
Попробуйте снова запустить сборку с помощью -e -X. Это приведет к увеличению производительности. –