2014-06-17 64 views
2

看來Maven在打包戰爭歸檔時仍繼續使用我的代碼的舊版本。mvn clean install不使用最後一個.class版本

我使用簡單的「mvn clean install」構建我的戰爭。

我手工刪除了/ target文件夾,並且檢查到我的項目中沒有其他的.class文件(as described here)。

每次我檢查生成的檔案,我的代碼的舊版本已被打包在裏面。然而,相同的代碼在我的同事的機器上正確打包(他使用m2e)。

有沒有人有同樣的問題?

這裏是POM的最相關的部分:

<packaging>war</packaging> 
... 
<build> 
    <plugins> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-compiler-plugin</artifactId> 
      <!-- <version>2.3.2</version> --> 
      <configuration> 
       <source>1.6</source> 
       <target>1.6</target> 
      </configuration> 
     </plugin> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-war-plugin</artifactId> 
      <version>2.4</version> 
     </plugin> 
    </plugins> 
</build> 
+0

顯示完整的pom文件?你使用Eclipse或從命令行調用?你使用哪個版本的Maven? – khmarbaise

+0

我使用Maven 3.0.3和maven-war-plugin 2.4。我使用IntelliJ和命令行 - 結果相同。你能告訴我你想檢查的POM的哪部分,以及它與我的問題有什麼關係?我想避免這個問題的膨脹。 – otonglet

+0

您重寫了源目錄屬性還是標準Maven樹? (像src/main/java/...) –

回答

0

看來,舊的代碼仍然存在的地方;我的猜測會是你的本地存儲庫。嘗試刪除可能包含舊代碼的任何條目,然後再次構建項目。

+0

我做了一個乾淨的安裝了一個sibbling模塊,它是一個依賴項(儘管該模塊不包含任何我想查看的代碼更改),並解決了問題。 – otonglet

+0

@otonglet這裏可能存在交叉依賴關係,所以模塊a取決於模塊b,反之亦然。如果是這樣,你應該刪除這個交叉依賴,以防止這樣的未來問題。 – blalasaadri

+0

好的。我查過了,但沒有交叉依賴。我不知道它是如何發生的......感謝提示! – otonglet

0

檢查<dependency>條目的pom.xml爲jar文件。將該依賴項的<version>更改爲最新的依賴項。

+0

謝謝,但未更新的代碼不是來自依賴關係 – otonglet

+0

@otonglet,但你如何在一個戰爭中打包一個罐子而不提供依賴關係? – Dinal

+0

我不打包一個我的POM包裝類型是WAR,我直接在這個maven-war項目中編寫代碼 – otonglet

相關問題