首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SonarQube:源目录与包声明不匹配

SonarQube:源目录与包声明不匹配
EN

Stack Overflow用户
提问于 2014-02-05 11:21:30
回答 2查看 1.7K关注 0票数 1

我很难为我的项目为sonarQube找到正确的属性。文件夹结构如下:

代码语言:javascript
复制
mod/
  framework/
    Framework.java
  rebuild2/
    Rebuild2.java
sonar-project.properties

这两个java文件中都没有太多内容,但它们确实有包声明(分别为mod.framework和mod.rebuild2 )。

我尝试过各种不同的方式来编写属性文件,但是它总是错误的“源目录与包声明不匹配”。它似乎期望文件夹为mod.framework/和mod.rebuild 2/。

我已经查看了主要网站上的文档,但它们的所有示例都没有包声明。我也在这里搜索过,但要么解决方案不起作用,要么是maven/gradle吐露。

有没有人知道在这种情况下是否可以设置声呐-project.properties文件?

代码语言:javascript
复制
# Required metadata
sonar.projectKey=mc:rebuild2
sonar.projectName=Rebuild 2
sonar.projectVersion=0.2

# The value of the property must be the key of the language.
sonar.language=java

# Encoding of the source code
sonar.sourceEncoding=UTF-8

sonar.modules=framework,rebuild2
framework.sonar.projectName=Framework
framework.sonar.projectBaseDir=mod
framework.sonar.sources=.
rebuild2.sonar.projectName=Rebuild 2
rebuild2.sonar.projectBaseDir=mod
rebuild2.sonar.sources=.
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-02-05 13:58:08

在您的配置中有一些概念上的错误。

“框架”和“重建2”项目都是单独的模块(考虑子项目),它们具有独立的源树;或者它们只是同一源树中的单独包,在这种情况下,您可以删除sonar.sourceEncoding=UTF-8下面的行。

您的配置试图在同一个源树中定义两个模块,我认为当前的分析器不支持这一点,除非使用排除,例如:

代码语言:javascript
复制
sonar.modules=framework,rebuild2
framework.sonar.projectName=Framework
framework.sonar.projectBaseDir=.
framework.sonar.sources=.
framework.sonar.inclusions=mod/framework/**
rebuild2.sonar.projectName=Rebuild 2
rebuild2.sonar.projectBaseDir=.
rebuild2.sonar.sources=.
rebuild2.sonar.inclusions=mod/rebuild2/**

参见多模块项目配置文档中的SonarQube文档。

票数 0
EN

Stack Overflow用户

发布于 2014-02-05 11:25:36

如果Java文件(例如File.java)具有包分层,如下所示:

代码语言:javascript
复制
package com.abc.xyz;

对于文件,这意味着文件应该在文件夹结构中,如

代码语言:javascript
复制
com
   abc
      xyz
         File.java

但在你的情况下,这个规则是无效的。而且您的代码也不应该编译。

请查查,可能是这样的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21575812

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档