Maven Building eclipse-gov.redhawk.core, nxm-ui repo
Этот вопрос является продолжением вопроса Нетраннера здесь. Основываясь на ответе Эрика Энглунда, я смог получить и установить 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, чтобы мы могли также при необходимости собрать наш собственный пакет? Если нет, не могли бы вы указать нам на эквивалентный пакет?
1 ответ
Среда IDE может быть построена из исходного кода, однако в настоящее время она требует небольшой работы. Вот шаги, которые вы можете предпринять, и скрипт для автоматизации процесса. Это всего лишь пример, и его следует изменить в соответствии с вашими потребностями.
Существует ряд плагинов, для которых вам нужно создать сайт обновлений, с помощью IDE REDHAWK 1.9.0 это довольно просто.
- Откройте вашу 1.9.0 IDE. Файл -> Новый -> Проект. Установите флажок "Показать все мастера". Введите "обновление", чтобы перейти к "Обновить сайт проекта"
- Вам может быть предложено включить разработку плагин-проектов, нажмите ОК.
- Дайте проекту имя и нажмите "Готово".
- Добавьте категорию, укажите ID и имя, неважно, что, но это необходимо.
- Теперь добавьте следующие функции:
--- org.jacorb - нигде не упакован в качестве сайта обновления в Интернете
--- org.eclipse.nebula.widgets.xviewer.feature - Это только потому, что функция туманности не имеет стабильного API и изменилась с момента сборки 1.9.0
--- org.python.pydev.feature - API Pydev также изменился с момента сборки 1.9.0
- Нажмите Build All. Скопируйте местоположение этого сайта обновления. Чтобы найти местоположение, вы можете щелкнуть правой кнопкой мыши на site.xml и выбрать свойства. Необходимый путь - это папка, в которой находится site.xml.
Скопируйте приведенный ниже скрипт, поместите его в пустую папку и измените переменную LOCAL_P2, чтобы она указывала на этот недавно созданный сайт P2.
- сделать скрипт исполняемым с помощью chmod +x
- Запустите скрипт. Это может занять некоторое время, но клонирует все репозитории, сделает соответствующие исправления и создаст продукт IDE.
Опять же, это должно служить просто примером, а не системой сборки для IDE. Также обратите внимание на то, что это сборка 1.9.0, и для ее разработки потребуются модификации ветвей разработки-1.10 и разработки-1.9.
#!/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"