Sonar实践问题:指定第三方库目录

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Sonar实践问题:指定第三方库目录相关的知识,希望对你有一定的参考价值。

参考技术A

理论已经由别人提出

我的实践如下——

这个插件的官方 maven-dependency-plugin 使用文档 ,根据 样例 如下——

这样有两个问题:

这样导致执行了接近全生命周期的任务。

这里涉及到 phase 、 goal 的概念区别: What are Maven goals and phases and what is their difference?

default Maven lifecycle bindings 这里定义了在各个“阶段”(phase)都会执行哪些“目标动作”(goals)

mvn [plugin-name]:[goal-name] ,例如 mvn dependency:copy-dependencies 就是执行了插件 maven-dependency-plugin 定义的 copy-dependencies 动作。进一步,对应的configuration可以通过变量进行传参。

经验证,使用绝对路径地址指定outputDirectory的值是,可以将多模块的依赖统一复制到指定目录下。

所以,最终的 解决方案 为:

qt .pro文件和cmakelists.txt配置第三方库

.pro文件引用第三方库文件和头文件路径

1.库文件(LIBS添加的是共享库文件,-L添加目录,-l指定共享库名称)

LIBS += -L/usr/local/lib -lmath

LIBS的使用就是-L指定库的目录,而-l指定库的名字,在Linux下,则去掉lib和后缀名,windows下去掉后缀名即可),静态库、动态库都是一样的。

2.头文件路径

INCLUDEPATH += /home/will/Projects/pluginTest/INCLUDEPATH 后添加头文件路径
Cmakelistst.txt引用第三方库文件和头文件路径

1.命名变量
set(INC_DIR /usr/local/include)
set(LINK_DIR /usr/local/lib)
set(SOURCE_FILES main.cpp)


2.添加头文件目录INCLUDE_DIRECTORIES,去哪里找头文件 相当于gcc/clang 中的-I(i的大写字母)参数
include_directories(${INC_DIR}) # 用${}引用变量


3.去哪里找库文件 .so .dll .dylib 相当于gcc 中的-L参数
link_directories(${LINK_DIR})


4.要链接的库文件的名字 相当于gcc中的-l(小写的l)参数
target_link_libraries(test_boost boost_filesystem boost_system)
只写库名就可以,就是libxxx.so的中间xxx的部分


 









以上是关于Sonar实践问题:指定第三方库目录的主要内容,如果未能解决你的问题,请参考以下文章

qt .pro文件和cmakelists.txt配置第三方库

vs指定QT的工作目录(其它项目也是如此)

iOS小技能:第三方库管理规范

Python最佳实践-构建自己的第三方库

Autolayout第三方库Masonry的入门与实践

iOS第三方库管理规范:以Cocoapods为案例