Maven 2 开发maven插件,如何排除bitkeeper文件
我正在编写一个maven 2插件,我想排除与我正在使用的源存储库(BitKeeper)相关的所有java文件。这些文件位于名为SCCS的目录中。到目前为止,我还没有成功 当我添加带有排除数据的maven compile插件时,如果我执行mvn compiler:compile,它就会工作(BitKeeper文件被排除)。但这并不绑定到编译阶段。因此,当我运行mvn compile时,它尝试编译特定于源代码管理的java文件。感谢您的帮助或指点 另一件需要注意的事情是:如果我将包装从“maven插件”更改为“jar”,那么一切都会完美运行,当然,我不能永久地这样做,因为这是我正在尝试编写的maven插件 我很抱歉,如果这是回答其他地方。我已经在这里和maven文档中查看了几个小时,但是关于这个主题的所有内容似乎都与编写将打包在JAR中的代码有关,而不是maven插件 以下是我的pom.xml:Maven 2 开发maven插件,如何排除bitkeeper文件,maven-2,Maven 2,我正在编写一个maven 2插件,我想排除与我正在使用的源存储库(BitKeeper)相关的所有java文件。这些文件位于名为SCCS的目录中。到目前为止,我还没有成功 当我添加带有排除数据的maven compile插件时,如果我执行mvn compiler:compile,它就会工作(BitKeeper文件被排除)。但这并不绑定到编译阶段。因此,当我运行mvn compile时,它尝试编译特定于源代码管理的java文件。感谢您的帮助或指点 另一件需要注意的事情是:如果我将包装从“maven插
<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目录。