2016-08-03 75 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(其甚至可以在运行 - 它将重新加载束)。