В Opendaylight всякий раз, когда я делаю изменение, я создаю весь проект, а не конкретный проект. mvn clean install -DskipTests=true.. Есть ли способ пропустить всю сборку и построить конкретный pom.xml проекта.. Например, в ovsdb, если я хочу запустить только южный проект, что мне нужно сделать?
Opendaylight: как построить конкретный проект с помощью maven?
Ответы (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.
Если вы впервые используете сборку всего проекта с помощью команды
mvn чистая установка -DskipTests -Dcheckstyle.skip=true
Для последующих изменений скажите, что вы изменили в файле southbound-impl build southbound-impl, используя приведенную выше команду.
Затем создайте южный karaf, используя приведенную выше команду. Потом можно запускать караф на пробу. для мишени/сборки/бен/караф.[ш|бат]
Предполагая, что у вас есть соответствующие записи в вы 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 (который может даже работать — он повторно загрузит пакеты).