あなたが発見したように、これはあなたが望むようには機能しません。(enforcer プラグインが pom にリストされているすべての依存関係と一致していることに気付いていると思いますか?)
version
問題は、指定された が単一であるか、maven のVersion Spec*
に準拠していることを Maven が期待していることです。(つまり、など) 使用している複数のワイルドカードを処理できません。1.0
[1.0,)
残念ながら、私は本当にあなたのための解決策を持っていません. 独自のルールを作成してルールを拡張し、希望どおりに機能させることができます
BannedDependencies
。
以下は、問題の原因となっているコードの詳細です
クラスには、文字列BannedDependencies
で指定されたバージョンの次のチェックがあります。exclude
if (pattern[2].equals("*") || artifact.getVersion().equals(pattern[2]) ) {
result = true;
} else {
try {
result = AbstractVersionEnforcer.containsVersion(
VersionRange.createFromVersionSpec(pattern[2]),
new DefaultArtifactVersion(artifact.getBaseVersion()));
} catch ( InvalidVersionSpecificationException e ) {
throw new EnforcerRuleException("Invalid Version Range: ", e);
}
}
あなたにとっての具体的な問題は
AbstractVersionEnforcer.containsVersion(
VersionRange.createFromVersionSpec(pattern[2]),
new DefaultArtifactVersion(artifact.getBaseVersion()))
VersionRange
による を期待していることがわかりますVersionRange.createFromVersionSpec()
。そのコードはここで見ることができます:
VersionRange ソースコード