Opendaylight: как построить конкретный проект с помощью maven?

В Opendaylight всякий раз, когда я делаю изменение, я создаю весь проект, а не конкретный проект. mvn clean install -DskipTests=true.. Есть ли способ пропустить всю сборку и построить конкретный pom.xml проекта.. Например, в ovsdb, если я хочу запустить только южный проект, что мне нужно сделать?


person Vinoth    schedule 03.08.2016    source источник


Ответы (3)


Может быть лучший способ, но я использую обходной путь:


Я использую скрипт bash для копирования файлов jar + config.


Если я внесу изменения в код модуля,

  • Я собираю модифицированный модуль
  • Выполните сценарий. чтобы скопировать созданный JAR-файл, файлы конфигурации в определенную папку внутри папки System разархивированного дистрибутива ODL.
  • Я перезапускаю ОДЛ. мусорное ведро/караф чистый.

Часть сценария bash, который я использую для обновления общих файлов jar + config.

местный.ш:

elif [ $1 == common ]; then
    cp /home/user/workspaces/workspace-odl/myproject/common/implementation/target/common-impl-2.0.0-SNAPSHOT.jar /home/user/controller/myproject-karaf-2.0.0-SNAPSHOT/system/com/myproject/common-impl/2.0.0-SNAPSHOT/common-impl-2.0.0-SNAPSHOT.jar
    cp /home/user/workspaces/workspace-odl/myproject/common/model/target/common-model-2.0.0-SNAPSHOT.jar /home/user/controller/myproject-karaf-2.0.0-SNAPSHOT/system/com/myproject/common-model/2.0.0-SNAPSHOT/common-model-2.0.0-SNAPSHOT.jar
    cp /home/user/workspaces/workspace-odl/myproject/common/config/src/main/resources/initial/89-common.xml /home/user/controller/myproject-karaf-2.0.0-SNAPSHOT/system/com/myproject/common-config/2.0.0-SNAPSHOT/common-config-2.0.0-SNAPSHOT-config.xml
    rm /home/user/controller/myproject-karaf-2.0.0-SNAPSHOT/etc/opendaylight/karaf/89-common.xml
    echo "Updated common"

Исполнение:

./local.sh common

Это скопирует обновленные jar-файлы, и при следующем запуске ODL будут выбраны обновленные jar-файлы.

Это быстро и не требует пересборки всего проекта ODL.

person raptor    schedule 04.08.2016

  1. Если вы впервые используете сборку всего проекта с помощью команды

    mvn чистая установка -DskipTests -Dcheckstyle.skip=true

  2. Для последующих изменений скажите, что вы изменили в файле southbound-impl build southbound-impl, используя приведенную выше команду.

  3. Затем создайте южный karaf, используя приведенную выше команду. Потом можно запускать караф на пробу. для мишени/сборки/бен/караф.[ш|бат]

person Karthik Prasad    schedule 04.08.2016

Предполагая, что у вас есть соответствующие записи в вы Maven settings.xml< /a>, вы можете создать любой модуль в проекте OpenDaylight Maven, запустив Maven в его папке; для ovsdb southbound:

cd southbound
mvn clean install

В качестве альтернативы, из корня проекта:

mvn -f southbound clean install

Если вы хотите построить только один модуль (ни один из его дочерних элементов):

mvn -pl southbound clean install

(Это все стандартные опции Maven.)

OpenDaylight включает в себя несколько приятных дополнений, которые вы можете использовать для более быстрой итерации сборок:

  • профиль q пропускает все цели, которые не вносят вклад в конечный артефакт (статический анализ, тесты, документация...):

    mvn -f southbound clean install -Pq
    
  • обновленные JAR-файлы можно установить непосредственно в уже существующую системную папку Karaf с помощью переменной addInstallRepositoryPath:

    mvn -f southbound clean install -DaddInstallRepositoryPath=.../karaf/system
    

    (заменив ... на соответствующий путь).

Их можно комбинировать, т.

mvn -f southbound clean install -DaddInstallRepositoryPath=.../karaf/system -Pq

создает и устанавливает JAR-файлы в существующий Karaf (который может даже работать — он повторно загрузит пакеты).

person Stephen Kitt    schedule 31.08.2016