0

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

4

3 回答 3

0

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


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


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

  • 我构建了修改后的模块
  • 执行脚本。要将构建的 jar 文件、配置文件复制到解压缩System的 ODL 分发文件夹内的特定文件夹位置。
  • 我重新启动ODL。bin/karaf 干净。

我用来更新常见 jars+config 的 bash 脚本的一部分

本地.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

这将复制更新的 jar,下次运行 ODL 时,将获取更新的 jar。

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

于 2016-08-04T05:22:42.173 回答
0
  1. 如果您是第一次使用命令构建整个项目

    mvn clean install -DskipTests -Dcheckstyle.skip=true

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

  3. 接下来使用上述命令构建 southbound-karaf。然后你可以启动 karaf 进行测试。对于目标/程序集/bin/karaf.[sh|bat]

于 2016-08-04T07:25:09.993 回答
0

假设您在Mavensettings.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 可以使用以下变量直接安装在预先存在的 Karaf 系统文件夹中addInstallRepositoryPath

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

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

这些可以组合,所以

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

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

于 2016-08-31T12:38:22.283 回答