在Opendaylight中,每当我做出改变时,我将构建整个项目而不是特定项目。 mvn clean install -DskipTests = true ..有没有办法跳过整个构建并构建项目的特定pom.xml。例如在ovsdb中,如果我想单独运行南向项目我必须做什么?
答案 0 :(得分:0)
可以有更好的方法,但我使用的解决方法是:
我使用bash脚本来复制jar +配置文件。
如果我对模块进行代码更改,
System
文件夹中的特定文件夹位置。我用来更新常见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)
如果您是第一次使用命令
构建整个项目mvn clean install -DskipTests -Dcheckstyle.skip = true
对于后续更改,请说您已使用上述命令更改了southbound-impl build southbound-impl。
接下来使用上面的命令构建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(它甚至可以运行 - 它将重新加载包)。