2016-08-03 72 views
0

在Opendaylight中,每當我做出改變時,我都會建立整個項目而不是特定的項目。 mvn clean install -DskipTests = true ..有什麼辦法可以跳過整個構建並構建項目的特定pom.xml ..例如,在ovsdb中,如果我想單獨運行南行項目,我必須做什麼?Opendaylight:如何使用maven構建特定項目?

回答

0

可以有一個更好的辦法,但我用的解決方法是:


我使用bash腳本複製罐子+配置文件。


如果我更改代碼的模塊,

  • 我建立改型的模塊
  • 執行腳本。將構建的jar文件,配置文件複製到unziped ODL分發的System文件夾內的特定文件夾位置。
  • 我重新啓動ODL。 bin/karaf清潔。

部分,我用它來更新公共瓶+配置

local.sh的bash腳本的:

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. 如果您正在使用第一次使用命令來構建整個項目

    MVN乾淨安裝-DskipTests -Dcheckstyle.skip =真

  2. 對於後續的變化說你有在southbound-改變使用上述命令,impl構建南行 - impl。

  3. 接下來使用上述命令構建南行卡拉夫。然後你可以開始測試卡拉夫。目標/組裝/ bin/karaf。[SH |蝙蝠]

0

假設你有you Maven settings.xml相應的條目,您可以通過它的文件夾中運行Maven構建在OpenDaylight 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 
    
  • mvn -f southbound clean install -DaddInstallRepositoryPath=.../karaf/system 
    

    (取代:

  • 更新的JAR可以直接在一個預先存在的Karaf系統文件夾使用addInstallRepositoryPath變量被安裝帶有適當路徑的...)。

這些可以結合,所以

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

構建和安裝在一個現有的Karaf中的JAR(其甚至可以在運行 - 它將重新加載束)。