IDE может быть собрана из исходного кода, однако в настоящее время для этого требуется немного поработать. Вот шаги, которые вы можете предпринять, и сценарий для автоматизации процесса. Это всего лишь пример, и его следует изменить в соответствии с вашими потребностями.
Существует ряд плагинов, для которых вам потребуется создать сайт обновлений, используя 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.
Скопируйте приведенный ниже сценарий, поместите его в пустую папку и измените переменную LOCAL_P2, чтобы она указывала на этот вновь созданный сайт P2.
- сделать скрипт исполняемым с помощью chmod +x
- Запустите скрипт. Это может занять некоторое время, но все репозитории будут клонированы, сделаны соответствующие исправления и собран продукт 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