Opendaylight:如何使用maven构建特定项目?

时间:2016-08-03 10:29:35

标签: maven openstack opendaylight

在Opendaylight中,每当我做出改变时,我将构建整个项目而不是特定项目。 mvn clean install -DskipTests = true ..有没有办法跳过整个构建并构建项目的特定pom.xml。例如在ovsdb中,如果我想单独运行南向项目我必须做什么?

3 个答案:

答案 0 :(得分:0)

可以有更好的方法,但我使用的解决方法是:

我使用bash脚本来复制jar +配置文件。

如果我对模块进行代码更改,

  • 我构建了修改后的模块
  • 执行脚本。将已构建的jar文件,配置文件复制到解压缩的ODL发行版的System文件夹中的特定文件夹位置。
  • 我重启ODL。 bin / karaf clean。

我用来更新常见jar + config

的bash脚本的一部分

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时,将会选择更新的罐子。

这很快,并且不需要我重建整个ODL项目。

答案 1 :(得分:0)

  1. 如果您是第一次使用命令

    构建整个项目

    mvn clean install -DskipTests -Dcheckstyle.skip = true

  2. 对于后续更改,请说您已使用上述命令更改了southbound-impl build southbound-impl。

  3. 接下来使用上面的命令构建southbound-karaf。然后你可以开始测试karaf了。 for target / assembly / bin / karaf。[sh | bat]

答案 2 :(得分:0)

假设您在you Maven settings.xml中有相应的条目,您可以通过在其文件夹中运行Maven来在OpenDaylight 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可以使用addInstallRepositoryPath变量直接安装在预先存在的Karaf系统文件夹中:

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

    (用适当的路径替换...)。

这些可以合并,所以

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

在现有的Karaf中构建并安装JAR(它甚至可以运行 - 它将重新加载包)。