2012-11-22 32 views
0

maven duplicate finder plugin看起來像是檢測多個模塊中存在相同資源的好方法。我需要的是更簡單的方法:檢測相同的模塊中的相同資源。檢測單個maven項目中的重複資源

更新:提起an issue對行家重複的發現者插件來看看它的預期檢測到這種情況還是不行。)

下面是行家重複的發現者插件不能檢測排序的示範我所關心的情況:

$ 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] ------------------------------------------------------------------------ 
+1

這個插件不知道,但你可以用在bash的「簡單」一行實現這一點:'找到。 | rev |剪下-d/-f 1 | rev |排序| uniq -c | grep -v「^ * 1」'。 HIH – poussma

+0

@ ZNK-M:很好 - 我不知道那個'rev'命令。但我希望能夠成爲Maven的一部分。 –

回答

0

爲什麼不使用maven-duplicate finder plugin來完成你所需要的工作?另一種解決方案是使用maven-enforcer-plugin,但它看起來像你需要實現你的own enforcer-rule。我寧願使用maven-duplicate-finder-plugin。

+0

我編輯了我的問題來證明重複的查找程序插件沒有檢測到我擔心的情況。 –

+0

這意味着在github上創建一個問題,並希望它將被修復,否則只需分叉插件並創建並修復它自己的... – khmarbaise

+0

好的,提交https://github.com/ning/maven-duplicate-取景器,插件/問題/ 16。如果他們同意這是一個錯誤,我會給你複選標記。 :) –

2

重複取景器插件不能幫助你在這種特定情況下。

問題是它在類路徑上,而不是在源文件夾上。在maven的情況下,它包含目標中的本地文件夾和工件。如果您有多個資源源文件夾(在您的案例中爲src/main/resourcessrc/main/resources_es),則在插件實際運行之前,這些文件將被複制到target/classes,因此它無法檢測到這種情況。

重複的取景器內插件只能幫助

  • 如果多個資源文件夾在單獨的僞像結束(罐)
  • 如果資源中的一個是爲編譯的文件夾(目標/班)和一個用於測試(目標/測試類)

重複取景器插件從不查看源文件夾,僅在類路徑文件夾中查看。

(我是插件的主要作者之一。)

相關問題