Maven Building eclipse-gov.redhawk.core, репозиторий nxm-ui

Этот вопрос является продолжением вопроса Netrunner здесь. Основываясь на ответе Эрика Энглунда, я смог получить mil.jpeojtrs. sca упакован и установлен путем создания моего собственного пакета jacorb для OSGi, его локальной установки и соответствующего обновления файла pom.xml в mil.jpeojtrs.sca/releng.

Однако та же проблема, которую поднимает Netrunner, возникает при попытке установить gov.redhawk.core... репозиторий nxm-ui указывает на репозиторий redhawk.sdr.org:

http://download.redhawksdr.org/nxm-rcp/releases/1.0

В отличие от jacorb, я не могу найти эквивалентный пакет для сборки. Как спросил Netrunner, это уникальный пакет, разработанный REDHAWK? Если да, можно ли сделать его доступным на github, чтобы при необходимости мы могли также создать свой собственный пакет? Если нет, не могли бы вы указать нам на эквивалентный пакет?


person neil    schedule 16.05.2014    source источник


Ответы (1)


IDE может быть собрана из исходного кода, однако в настоящее время для этого требуется немного поработать. Вот шаги, которые вы можете предпринять, и сценарий для автоматизации процесса. Это всего лишь пример, и его следует изменить в соответствии с вашими потребностями.

  1. Существует ряд плагинов, для которых вам потребуется создать сайт обновлений, используя REDHAWK 1.9.0 IDE, это довольно просто.

    • Open your 1.9.0 IDE. File -> New -> Project. Select the Show All Wizards checkbox. Type in "update" to filter to the "Update Site Project"
    • Вам может быть предложено включить разработку проектов плагинов, нажмите «ОК».
    • Дайте проекту имя и нажмите «Готово».
    • Добавьте категорию, укажите идентификатор и имя, неважно какое, но обязательное.
    • Теперь добавьте следующие функции:

    --- org.jacorb - нигде не упакован как сайт обновлений в Интернете

    --- org.eclipse.nebula.widgets.xviewer.feature — это только потому, что функция туманности не имеет стабильного API и изменилась с момента сборки 1.9.0

    --- org.python.pydev.feature — Pydev API также изменился со времени сборки 1.9.0.

    • Нажмите «Построить все». Скопируйте расположение этого сайта обновлений. Чтобы найти местоположение, вы можете щелкнуть правой кнопкой мыши на site.xml и выбрать свойства. Необходимый путь — это папка, содержащая site.xml.
  2. Скопируйте приведенный ниже сценарий, поместите его в пустую папку и измените переменную LOCAL_P2, чтобы она указывала на этот вновь созданный сайт P2.

  3. сделать скрипт исполняемым с помощью chmod +x
  4. Запустите скрипт. Это может занять некоторое время, но все репозитории будут клонированы, сделаны соответствующие исправления и собран продукт IDE.

Опять же, это должно служить просто примером, а не системой сборки для IDE. Также обратите внимание, что это сборка 1.9.0, и для сборки веток development-1.10 и develo-1.9 IDE потребуются модификации.

#!/bin/bash

function error() {
        printf "\n\nREDHAWK IDE BUILD Failed!\n\n"
        exit 1
}

LOCAL_P2="/home/ylb/exampleLocation"

MVN="mvn"
MVN_PHASE="clean verify"
GIT="git"
REDHAWK_VERSION="develop-1.9"
MINOR_VERSION="1.9.0"

BASEDIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"

MIL_GIT="https://github.com/RedhawkSDR/eclipse-mil.jpeojtrs.sca.git"
MIL_BRANCH=${REDHAWK_VERSION}
MIL_P2="-Dmil.jpeojtrs.sca=file:///${BASEDIR}/mil.jpeojtrs.sca/releng/p2/target/repository"

CORE_GIT="https://github.com/RedhawkSDR/eclipse-gov.redhawk.core.git"
CORE_BRANCH=${REDHAWK_VERSION}
CORE_P2="-Dgov.redhawk.core=file:///${BASEDIR}/gov.redhawk.core/releng/core/p2/target/repository"
RCP_P2="-Dgov.redhawk.core.rcp=file:///${BASEDIR}/gov.redhawk.core/releng/rcp/p2/target/repository"

IDE_GIT="https://github.com/RedhawkSDR/eclipse-gov.redhawk.ide.git"
IDE_BRANCH=${REDHAWK_VERSION}
IDE_P2="-Dgov.redhawk.ide=file:///${BASEDIR}/gov.redhawk.ide/releng/p2/target/repository"
DOC_ZIP="-Dgov.redhawk.ide.help.doc.zip=file:///${BASEDIR}/doc.zip"

CODEGEN_GIT="https://github.com/RedhawkSDR/eclipse-gov.redhawk.codegen.git"
CODEGEN_BRANCH=${REDHAWK_VERSION}
CODEGEN_P2="-Dgov.redhawk.codegen=file:///${BASEDIR}/gov.redhawk.codegen/releng/p2/target/repository"

PRODUCT_GIT="https://github.com/RedhawkSDR/eclipse-products-gov.redhawk.ide.product.git"
PRODUCT_BRANCH=${REDHAWK_VERSION}
PRODUCT_P2="-Dgov.redhawk.ide.product=file:///${BASEDIR}/gov.redhawk.ide.product/releng/p2/target/repository"

# First clone all the repositories
if [ ! -d mil.jpeojtrs.sca ]; then
  printf "\n\nCloning mil.jpeojtrs.sca...\n\n"
  ${GIT} clone -b ${MIL_BRANCH} ${MIL_GIT} mil.jpeojtrs.sca; cd mil.jpeojtrs.sca; git checkout ${MINOR_VERSION}; cd ..;
fi

if [ ! -d gov.redhawk.core ]; then
  printf "\n\nCloning gov.redhawk.core...\n\n"
  ${GIT} clone -b ${CORE_BRANCH} ${CORE_GIT} gov.redhawk.core; cd gov.redhawk.core; git checkout ${MINOR_VERSION}; cd ..;
fi


if [ ! -d gov.redhawk.ide ]; then
  printf "\n\nCloning gov.redhawk.ide...\n\n"
  ${GIT} clone -b ${IDE_BRANCH} ${IDE_GIT} gov.redhawk.ide; cd gov.redhawk.ide; git checkout ${MINOR_VERSION}; cd ..;
fi

if [ ! -d gov.redhawk.codegen ]; then
  printf "\n\nCloning gov.redhawk.codegen...\n\n"
  ${GIT} clone -b ${CODEGEN_BRANCH} ${CODEGEN_GIT} gov.redhawk.codegen; cd gov.redhawk.codegen; git checkout ${MINOR_VERSION}; cd ..;
fi

if [ ! -d gov.redhawk.ide.product ]; then
  printf "\n\nCloning gov.redhawk.ide.product...\n\n"
  ${GIT} clone -b ${PRODUCT_BRANCH} ${PRODUCT_GIT} gov.redhawk.ide.product; cd gov.redhawk.ide.product; git checkout ${MINOR_VERSION}; cd ..;
fi

# The documentation is wrapped up into the build, rather than build the documentation just create a dummy zip file
touch FakeDocumentation.txt
zip doc.zip FakeDocumentation.txt

# Now we must fix the pom.xml files to point to proper locations

# Fix things wrong with core
sed -i 's,http://download.redhawksdr.org/nxm-rcp/releases/1.0,http://nextmidas.techma.com/p2/nxm.ui/updates/latest,g' ./gov.redhawk.core/releng/pom.xml

# Now ide pom

# CAREFUL! Removing lines 33-45
if [ $(grep "<id>eclipse-updates</id>" ./gov.redhawk.ide/releng/pom.xml | wc -l) == 1 ]; then
  sed -i '33,45d' ./gov.redhawk.ide/releng/pom.xml
fi

sed -i '/<eclipse-support>/d' ./gov.redhawk.ide/releng/pom.xml
sed -i '/<eclipse-updates>/d' ./gov.redhawk.ide/releng/pom.xml
sed -i "s,http://download.eclipse.org/technology/nebula/snapshot,file://${LOCAL_P2},g" ./gov.redhawk.ide/releng/pom.xml
sed -i 's,http://download.redhawksdr.org/nxm-rcp/releases/1.0,http://nextmidas.techma.com/p2/nxm.ui/updates/latest,g' ./gov.redhawk.ide/releng/pom.xml

# Now the codegen
sed -i 's,http://download.redhawksdr.org/nxm-rcp/releases/1.0,http://nextmidas.techma.com/p2/nxm.ui/updates/latest,g' ./gov.redhawk.codegen/releng/pom.xml
sed -i "s,http://pydev.org/updates,file://${LOCAL_P2},g" ./gov.redhawk.codegen/releng/pom.xml

# Now the product
sed -i "s,http://download.redhawksdr.org/mil.jpeojtrs.sca/releases/1.9,file://${BASEDIR}/mil.jpeojtrs.sca/releng/p2/target/repository,g" ./gov.redhawk.ide.product/releng/target-definition/target-definition.target
sed -i 's,http://download.redhawksdr.org/nxm-ui/releases/1.0,http://nextmidas.techma.com/p2/nxm.ui/updates/latest,g' ./gov.redhawk.ide.product/releng/target-definition/target-definition.target
sed -i "s,http://download.redhawksdr.org/gov.redhawk.codegen/releases/1.9,file://${BASEDIR}/gov.redhawk.codegen/releng/p2/target/repository,g" ./gov.redhawk.ide.product/releng/target-definition/target-definition.target
sed -i "s,http://download.redhawksdr.org/gov.redhawk.core/rcp/releases/1.9,file://${BASEDIR}/gov.redhawk.core/releng/rcp/p2/target/repository,g" ./gov.redhawk.ide.product/releng/target-definition/target-definition.target
sed -i "s,http://download.redhawksdr.org/jacorb/releases/3.1,file://${LOCAL_P2},g" ./gov.redhawk.ide.product/releng/target-definition/target-definition.target
sed -i "s,http://download.redhawksdr.org/gov.redhawk.ide/releases/1.9,file://${BASEDIR}/gov.redhawk.ide/releng/p2/target/repository,g" ./gov.redhawk.ide.product/releng/target-definition/target-definition.target
sed -i "s,http://download.redhawksdr.org/gov.redhawk.core/releases/1.9,file://${BASEDIR}/gov.redhawk.core/releng/core/p2/target/repository,g" ./gov.redhawk.ide.product/releng/target-definition/target-definition.target
sed -i "s,http://download.eclipse.org/technology/nebula/snapshot,file://${LOCAL_P2},g" ./gov.redhawk.ide.product/releng/target-definition/target-definition.target

# Then build each repo.
printf "\n\nBuilding mil.jpeojtrs.sca...\n\n"
${MVN} -f ${BASEDIR}/mil.jpeojtrs.sca/releng/pom.xml ${MVN_PHASE} -Djacorb=file://${LOCAL_P2} ${MIL_P2} || error

printf "\n\nBuilding gov.redhawk.core...\n\n"
${MVN} -f ${BASEDIR}/gov.redhawk.core/releng/core/pom.xml ${MVN_PHASE} -Djacorb=file://${LOCAL_P2} ${MIL_P2} ${CORE_P2} || error

printf "\n\nBuilding gov.redhawk.rcp...\n\n"
${MVN} -f ${BASEDIR}/gov.redhawk.core/releng/rcp/pom.xml ${MVN_PHASE} -Djacorb=file://${LOCAL_P2} ${MIL_P2} ${CORE_P2} ${RCP_P2} || error

printf "\n\nBuilding gov.redhawk.ide...\n\n"
${MVN} -f ${BASEDIR}/gov.redhawk.ide/releng/pom.xml ${MVN_PHASE} -Djacorb=file://${LOCAL_P2} ${MIL_P2} ${CORE_P2} ${RCP_P2} ${DOC_ZIP} ${IDE_P2} || error

printf "\n\nBuilding gov.redhawk.codegen...\n\n"
${MVN} -f ${BASEDIR}/gov.redhawk.codegen/releng/pom.xml ${MVN_PHASE} -Djacorb=file://${LOCAL_P2} ${MIL_P2} ${CORE_P2} ${RCP_P2} ${IDE_P2} ${CODEGEN_P2} || error

printf "\n\nBuilding gov.redhawk.ide.product...\n\n"
${MVN} -f ${BASEDIR}/gov.redhawk.ide.product/releng/pom.xml ${MVN_PHASE} -Djacorb=file://${LOCAL_P2} ${MIL_P2} ${CORE_P2} ${RCP_P2} ${IDE_P2} ${CODEGEN_P2} ${PRODUCT_P2} || error

printf "\n\nBuild SUCCESS!!!\n"
printf "\n\nProducts may be found in ${BASEDIR}/gov.redhawk.ide.product/releng/product/target/products/gov.redhawk.product.ide.product\n"
person Youssef Bagoulla    schedule 02.07.2014