2016-08-03 2 views
0

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

ответ

0

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


Я использую Баш скрипт для копирования баночки + файлы конфигурации.


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

  • Я строю Модифицированный модуль
  • выполнить сценарий. для копирования встроенного файла 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.

0
  1. Если вы используете в первый раз построить весь проект, используя команду

    МВН чистая установка -DskipTests -Dcheckstyle.skip = истинный

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

  3. Next build southbound-karaf, используя команду выше. Затем вы можете запустить карат для тестирования. для цели/сборки/bin/karaf.[Ш | бита]

0

Если у вас есть соответствующие записи в you Maven settings.xml, вы можете создать любой модуль в проекте OpenDaylight Maven, запустив Maven в папке; для ovsdbsouthbound:

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 (которые могут быть даже работает - он будет повторно загружать пакеты).