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

标签 maven-2

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

当我添加带有排除数据的 maven-compile-plugin 时,如果我执行 mvn compiler:compile,它就会工作(排除 BitKeeper 文件)。但这并不绑定(bind)到编译阶段。因此,当我运行 mvncompile 时,它​​会在尝试编译源代码控制特定的 java 文件时崩溃。任何帮助或指示表示赞赏。

另一件事要注意:如果我将包装从“maven-plugin”更改为“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>

感谢任何对此有想法的人,

-麦金利峰

最佳答案

实际上, plugin:descriptor generate-resources期间触发compile 之前的阶段(有关 maven-plugin 类型的包装,请参阅 lifecycle reference)。

无论如何,这里的问题是,无论失败的原因是什么(即使mojo能够解析必须包含一些意外 header 的p.STSMojo.java,该插件也不允许Mojo出现两次) ,Maven Plugin Plugin 支持包含/排除(请参阅 MPLUGIN-15 并为其投票),我不确定您是否可以通过配置解决此问题。

也许你可以在代码不受版本控制的情况下生成插件描述符,将描述符放在 /META-INF/maven/plugin.xml 中并配置Maven插件跳过描述符生成。但我没有对此进行测试。

或者也许你可以(干净或肮脏)修复该插件。但我没有看源码,所以我不能对此说太多。

或者,这当然不是预期的答案,但仍然是最简单的,您可以为您的 mojo 使用另一个 VCS(仅用于 Mojo,为什么不与 bitkeeper 并行)。

我将从对 Jira 问题的评论开始(您的用例完全有效并且应该受到支持),您可能会在那里得到更好的想法。

关于maven-2 - 开发maven插件,如何排除bitkeeper文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2436826/

相关文章:

java - Maven,带有 OS X 的 JAVA_HOME

java - 如何对客户端服务器代码进行单元测试

eclipse - Maven 缺少传递依赖

java - 如何使用 maven 打包并运行具有依赖项的简单命令行应用程序?

java - 我为 AspectJ 使用哪个 maven 插件?

Maven 版本 : Prepare/Perform after Rollback incorrectly succeeds with wrong content

java - log4j.properties 被忽略

maven - 使用 Ant 任务更改 Maven 属性

maven - 从 Nexus3 下载单个/最新 Assets (JAR)

java - 为什么 axistools-maven-plugin 试图访问这个相对模式位置?