В Opendaylight, всякий раз, когда я делал изменения, я построю весь проект вместо конкретного проекта. mvn clean install -DskipTests = true .. Есть ли способ пропустить всю сборку и построить конкретный проект pom.xml. Например, в ovsdb, Если я хочу запустить только южный проект, что мне нужно делать?Opendaylight: Как построить конкретный проект с помощью maven?
ответ
Там может быть лучше, но обходной путь я использую:
Я использую Баш скрипт для копирования баночки + файлы конфигурации.
Если внести изменения в код модуля,
- Я строю Модифицированный модуль
- выполнить сценарий. для копирования встроенного файла jar, конфигурационных файлов в определенную папку в папке
System
с разрозненным дистрибутивом ODL. - Я перезаписываю ODL. бен/караф чистый.
Часть сценария Баш, который я использую, чтобы обновить общие баночки + конфигурации
local.sh:
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
Это скопирует обновленные банки, и в следующий раз, когда вы запустите ODL, обновленные банки будут pi залез.
Это быстро и не требует, чтобы я перестроил весь проект ODL.
Если вы используете в первый раз построить весь проект, используя команду
МВН чистая установка -DskipTests -Dcheckstyle.skip = истинный
Для последующих изменений говорят, что вы изменили в southbound- impl построить южный-имп, используя вышеприведенную команду.
Next build southbound-karaf, используя команду выше. Затем вы можете запустить карат для тестирования. для цели/сборки/bin/karaf.[Ш | бита]
Если у вас есть соответствующие записи в you Maven settings.xml
, вы можете создать любой модуль в проекте 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
строит и устанавливает JARs в существующем Karaf (которые могут быть даже работает - он будет повторно загружать пакеты).