2015-11-13 91 views
2

我有默認的Maven結構停止Maven的:如何從覆蓋資源文件

main 
--java 
--resources 
--webapp 

我看到每一個mvn compile副本資源,即使他們沒有改變。 我應該怎麼做才能使構建副本只更改文件?

<build> 
     <plugins> 
      <plugin> 
       <artifactId>maven-compiler-plugin</artifactId> 
       <version>2.5.1</version> 
       <configuration> 
        <source>1.8</source> 
        <target>1.8</target> 
       </configuration> 
      </plugin> 

     </plugins> 
    </build> 
    <dependencies> 
     ... 
    </dependencies> 

    <properties> 
     <maven.resources.overwrite>false</maven.resources.overwrite> 
    </properties> 

這裏是在調試模式下輸出:

[INFO] Using 'cp1252' encoding to copy filtered resources. 
[DEBUG] resource with targetPath null 
directory C:\core\src\main\resources 
excludes [] 
includes [] 
[DEBUG] ignoreDelta true 
[INFO] Copying 190 resources 
[DEBUG] file batch.bat has a filtered file extension 
[DEBUG] copy C:\core\src\main\resources\batch.bat to C:\core\target\classes\batch.bat 
[DEBUG] file DataObject.hbm.xml has a filtered file extension 
[DEBUG] copy C:\core\src\main\resources\com\data\DataObject.hbm.xml to C:\core\target\classes\com\data\DataObject.hbm.xml 
+0

你能張貼您的POM文件?如果Maven沒有改變,它不應該覆蓋資源。 – Tunaki

回答

2

使用的Maven的命令財產-Dmaven.resources.overwrite=false。請參閱resources:resources目標的overwrite參數。

但是文檔中提到這是默認的行爲,因此檢查,如果該參數在您的項目配置設置爲true的地方。

+0

謝謝,我試着設置一個maven屬性,沒有運氣。你是這個意思嗎? false lili

+1

@lili是的,您可以通過命令行執行此操作或僅執行-Dmaven.resources.overwrite = false。你有沒有檢查文件是否被實際修改(使用更新的最後修改時間戳)?也許調試輸出在這裏不重要。 – manouti

+0

這是一個有趣的想法。我怎麼看它是複製文件還是隻寫日誌?如果我刪除其中一個文件,它會再次出現在目標文件夾中 – lili