我正在开发node.js项目。该团队都使用基于JetBrains IDEA的IDE。我们已经共享了我们的检查配置文件和一个范围供他们运行。
我们刚刚设置了TeamCity,并且有一个构建配置来运行Inspections。除了直接在" www"之外的3个html文件之外,它的工作方式完全相同。目录。问题是这3个文件的错误在IntelliJ中报告,但在TeamCity中没有报告。
唯一看来不同的是范围。 IntelliJ使用xml文件中定义的范围。 TeamCity范围通过UI设置(构建步骤表单字段"包含/排除模式")。 TeamCity的范围语法与IntelliJ的不同......对于我来说,我无法让TeamCity在同一范围内运行!
Here is a picture of the Project,检查范围以绿色下划线。我们想要排除库和配置的根文件夹,但包括其他所有内容(即我们写的所有内容)。
我尝试了两种策略,两者似乎都在IntelliJ中工作,而在TeamCity上失败了。
尝试1 - 仅包括:
+:backend/**
+:tests/**
+:www/css/**
+:www/dist/**
+:www/images/**
+:www/*
尝试2 - 包括整个www然后排除:
+:backend/**
+:tests/**
+:www/**
-:www/components/**
-:www/components-unmanaged/**
-:www/data/**
-:www/images/**
在IntelliJ中都可以工作。
尝试1 - 仅包括:
pattern="file:backend//*||file:tests//*||file:www/css//*||file:www/dist//*||file:www/images//*||file:www/index.html||file:www/loadsave.html||file:www/logical.html"
...more readable with some line breaks:
file:backend//*
||file:tests//*
||file:www/css//*
||file:www/dist//*
||file:www/images//*
||file:www/index.html
||file:www/loadsave.html
||file:www/logical.html
尝试2 - 包括整个www然后排除:
(file:backend//*||file:tests//*||file:www//*)&&!file:www/components//*&&!file:www/components-unmanaged//*&&!file:www/data//*&&!file:www/images//
...again, more readable with line breaks:
(
file:backend//*
||file:tests//*
||file:www//*
)
&&!file:www/components//*
&&!file:www/components-unmanaged//*
&&!file:www/data//*
&&!file:www/images//
https://confluence.jetbrains.com/display/TCD9/Inspections#Inspections-IdeaPatterns
模式必须满足以下规则:必须以**结尾 或*(这有效地将模式限制为仅限目录 级别,它们不支持文件级模式);
...
包含模式具有特殊行为(由于底层 限制):它包括指定的目录和所有文件 直接驻留在指定目录之上的目录中。
我唯一的另一个想法是,TeamCity可能并不支持IntelliJ所做的HTML检查类别,或者有些奇怪的原因它拒绝评估.html文件。