Maven 2 开发maven插件,如何排除bitkeeper文件

Maven 2 开发maven插件,如何排除bitkeeper文件,maven-2,Maven 2,我正在编写一个maven 2插件,我想排除与我正在使用的源存储库(BitKeeper)相关的所有java文件。这些文件位于名为SCCS的目录中。到目前为止,我还没有成功 当我添加带有排除数据的maven compile插件时,如果我执行mvn compiler:compile,它就会工作(BitKeeper文件被排除)。但这并不绑定到编译阶段。因此,当我运行mvn compile时,它尝试编译特定于源代码管理的java文件。感谢您的帮助或指点 另一件需要注意的事情是:如果我将包装从“maven插

我正在编写一个maven 2插件,我想排除与我正在使用的源存储库(BitKeeper)相关的所有java文件。这些文件位于名为SCCS的目录中。到目前为止,我还没有成功

当我添加带有排除数据的maven compile插件时,如果我执行mvn compiler:compile,它就会工作(BitKeeper文件被排除)。但这并不绑定到编译阶段。因此,当我运行mvn compile时,它尝试编译特定于源代码管理的java文件。感谢您的帮助或指点

另一件需要注意的事情是:如果我将包装从“maven插件”更改为“jar”,那么一切都会完美运行,当然,我不能永久地这样做,因为这是我正在尝试编写的maven插件

我很抱歉,如果这是回答其他地方。我已经在这里和maven文档中查看了几个小时,但是关于这个主题的所有内容似乎都与编写将打包在JAR中的代码有关,而不是maven插件

以下是我的pom.xml:

<project>

<modelVersion>4.0.0</modelVersion>
<groupId>com.mycomp.mygroup</groupId>
<artifactId>special-persistence-plugin</artifactId>
<packaging>maven-plugin</packaging>
<version>1.0-SNAPSHOT</version>
<name>Special Persistence Plugin</name>

<dependencies>
  <dependency>
    <groupId>org.apache.maven</groupId>
    <artifactId>maven-plugin-api</artifactId>
    <version>2.0</version>
  </dependency>
</dependencies>

<build>
  <plugins>
    <plugin>
      <artifactId>maven-compiler-plugin</artifactId>
      <configuration>
        <source>1.6</source>
        <target>1.6</target>
        <encoding>UTF-8</encoding>
        <excludes>
           <exclude>**/SCCS/**/*.java</exclude>
        </excludes>
        <phase>compile</phase>
         <goals>
           <goal>compiler:compile</goal>
         </goals>         
       </configuration>
     </plugin>
  </plugins>
</build>

</project>

4.0.0
com.mycop.mygroup
特殊持久性插件
maven插件
1.0-快照
特殊持久性插件
org.apache.maven
maven插件api
2
maven编译器插件
1.6
1.6
UTF-8
**/SCCS/***.java
编译
编译器:编译
感谢所有对此有想法的人

-Denali实际上是在
编译之前的
生成资源
阶段触发的(有关
maven插件类型的打包,请参阅)

无论如何,这里的问题是,不管失败的原因是什么(即使mojo能够解析必须包含意外头的
p.STSMojo.java
,插件不允许mojo出现两次),不支持includes/excludes(请参见并投赞成票)我不确定你能否通过配置来解决这个问题

也许您可以在代码不受版本控制时生成插件描述符,将描述符放在
/META-INF/maven/plugin.xml
中,并配置maven插件以跳过描述符生成。但我没有测试这个

或者你可以(清洁或弄脏)修复插件。但是我没有看来源,所以我不能说太多

或者,这当然不是预期的答案,但仍然是最简单的,你可以使用另一个VCS来制作你的魔咒(只是为了魔咒,为什么不与bitkeeper并行)


首先,我要对Jira问题发表评论(您的用例非常有效,应该得到支持),您可能会从中得到更好的想法。

您确定构建在编译过程中失败了吗?请运行
mvn生成资源
并确认它是否有效?我认为不会。谢谢-你说得对。它在编译期间不会失败。编译成功。它在插件描述符目标上失败,该目标将在编译阶段稍后出现。我如何才能指出这个目标,即应该忽略所有SCCS目录和其中的任何java文件?是的,mvn generate resources也无法实现相同的目标。[plugin:descriptor{execution:default descriptor}][INFO]使用“UTF-8”编码读取mojo元数据。[INFO]为语言应用mojo提取器:java[INFO][ERROR]致命错误[INFO][INFO]语法错误@[1,2]文件:/home/dlumma/work/bk/cimguitest-5.0-trunk/stsweb/src/main/java/com/coverity/sts/SCCS/p.STSMojo.java p.STSMojo.java应该被忽略。谢谢Pascal。我最终将源文件移动到一个新位置,生成插件jar,然后将它们移回并签入。讨厌。但它奏效了。我还联系了比特管理员。显然,他们在下一版本中删除了SCCS目录,但没有预计何时会删除。这是当前BitKeeper版本的一个大问题,这是众所周知的。我还将在您提供的论坛上发布插件模板中包含/排除支持的请求。再次谢谢你。@Denali不客气。谢谢你的反馈。很高兴知道bitkeeper的人正在做这件事,但我真的不明白这和CVS有什么不同。Maven应该能够忽略SCCS目录。