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实践问题:指定第三方库目录的主要内容,如果未能解决你的问题,请参考以下文章