maven duplicate finder plugin看起来是检测多个模块中何时存在相同资源的好方法。我需要的是更简单的东西:在相同的模块中检测相同的资源。
(更新:针对maven重复查找程序插件提交an issue,看看是否预计会检测到这种情况。)
以下是maven重复查找程序插件无法检测到我所关注的那种情况的演示:
$ cat pom.xml
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.stackoverflow.mattmchenry</groupId>
<artifactId>mvn-dups</artifactId>
<version>1.0</version>
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
</resource>
<resource>
<directory>src/main/resources_es</directory>
</resource>
</resources>
</build>
</project>
$ find src/ -type f
src/main/resources/Strings_es.properties
src/main/resources/Strings.properties
src/main/resources_es/Strings_es.properties
$ mvn com.ning.maven.plugins:maven-duplicate-finder-plugin:1.0.2:check[INFO] Scanning for projects...
[INFO] ------------------------------------------------------------------------
[INFO] Building Unnamed - com.stackoverflow.mattmchenry:mvn-dups:jar:1.0
[INFO] task-segment: [com.ning.maven.plugins:maven-duplicate-finder-plugin:1.0.2:check]
[INFO] ------------------------------------------------------------------------
[INFO] [duplicate-finder:check {execution: default-cli}]
[INFO] Checking compile classpath
[INFO] Checking runtime classpath
[INFO] Checking test classpath
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESSFUL
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1 second
[INFO] Finished at: Thu Nov 22 22:44:40 EST 2012
[INFO] Final Memory: 7M/88M
[INFO] ------------------------------------------------------------------------
答案 0 :(得分:2)
复制查找器插件在这种特定情况下无法帮助您。
问题是它适用于类路径,而不适用于源文件夹。在maven的情况下,它包含目标中的本地文件夹和工件。如果您有多个资源源文件夹(在您的情况下为src/main/resources
和src/main/resources_es
),这些文件将在插件实际运行之前由maven复制到target/classes
,因此无法检测到这种情况。
复制查找器插件只能帮助
复制查找器插件永远不会查看源文件夹,只能查看类路径文件夹。
(我是该插件的主要作者之一。)
答案 1 :(得分:0)
为什么不使用maven-duplicate finder插件来完成你需要的工作呢?另一个解决方案是使用maven-enforcer-plugin,但看起来您需要实现own enforcer-rule。我更喜欢使用maven-duplicate-finder-plugin。