如果我使用正则表达式,如何将常春藤代码转换为maven?

时间:2014-01-31 19:54:17

标签: regex maven build ivy

我的常春藤宣言是:

<dependency org="pmd" name="pmd" rec="4.2.5" conf="static-analysis->default">
     <exclude module="xom|xml-apis|jdom|dom4j|xercesImpl|ant|junit" 
      matcher="regexp" />
</dependency>

现在我在Maven中有:

<dependency>
   <groupId>pmd</groupId>
   <artifactId>pmd</artifactId>
   <version>4.2.5</version>
   <exclusions>
      <exclusion></exclusion>
   </exclusions>
</dependency>

我不确定如何排除正确。我也不确定如何转换来自Ivy的conf属性。

1 个答案:

答案 0 :(得分:1)

如果只关注依赖管理,Maven和Ivy是具有相似任务的工具,但实现方式却截然不同。

我不相信Maven支持正则表达式排除,尽管在版本3中添加了某种形式的通配符支持,请参阅MNG-3832

我的建议是尽可能采用最简单的解决方案,所以只需明确列出你不想要的依赖项:

<dependency>
   <groupId>pmd</groupId>
   <artifactId>pmd</artifactId>
   <version>4.2.5</version>
   <exclusions>
      <exclusion>
        <groupId>*</groupId>
        <artifactId>xom</artifactId>
      </exclusion>
      <exclusion>
        <groupId>*</groupId>
        <artifactId>xml-apis</artifactId>
      </exclusion>
      <exclusion>
        <groupId>*</groupId>
        <artifactId>jdom</artifactId>
      </exclusion>
      ..
      ..
   </exclusions>
</dependency>

配置映射非常难以翻译,因为Maven中不存在该概念。 Maven具有固定数量的“范围”,而配置通常用于模拟范围,但不受限制。对于更多背景信息,我建议