2010-09-03 106 views
0

Maven不會覆蓋我本地存儲庫中的eclipse項目的內置版本。我只更改了META-INF/MANIFEST.MF文件,但Maven似乎無法識別該文件,因此不會覆蓋本地存儲庫中的工件。我如何強制它覆蓋?這是Maven的日誌:使用Maven-Eclipse覆蓋本地Maven存儲庫中生成的目標?

[INFO] 
[INFO] --- maven-jar-plugin:2.2:jar (default-jar) @ message --- 
[INFO] 
[INFO] --- maven-install-plugin:2.3:install (default-install) @ message --- 
[INFO] **Skipped re-installing C:\dev\ws\Message\target\message-0.0.1.jar to C:\Users\Tim\.m2\repository\samba\message\message\0.0.1\message-0.0.1.jar, seems unchanged** 
[INFO] ------------------------------------------------------------------------ 
[INFO] BUILD SUCCESS 
[INFO] ------------------------------------------------------------------------ 
[INFO] Total time: 2.915s 
[INFO] Finished at: Fri Sep 03 15:22:12 CEST 2010 
[INFO] Final Memory: 7M/175M 
[INFO] ------------------------------------------------------------------------ 
+0

噢,我應該補充一點,如果我通過Eclipse的導出函數導出項目(並將其部署到ServiceMix中),那麼預期的更改會發生,但如果我通過osgi安裝ServiceMix Karaf外殼中的工件,則會發生預期的更改:install - s mvn:samba.message/message/0.0.1 – Akku 2010-09-03 13:39:38

回答

0

問題是我使用bundle插件來生成osgi包。有了這些,bundle插件會生成它自己的MANIFEST.MF文件,並且不會使用我放入我的資源的文件。實際上,當我嘗試使用我自己的MANIFEST.MF文件以及捆綁插件生成的文件時,我也遇到了一些錯誤。

0

好吧,我想我剛纔看到的Maven不部署METAINF/MENIFEST.MF與目標的其他文件的文件。似乎我必須以某種方式處理這件事。對不起,我是Maven的新手。

0

在Maven中使用RELEASE版本時要小心。你不應該「重新部署」它們 - 因爲合同是他們永遠不會改變。如果您將RELEASE版本部署到全球 Maven存儲庫(例如Nexus),您將無法再重新部署它。如果需要更改,您必須構建新版本。

開發階段使用SNAPSHOT版本(0.0.1-SNAPSHOT)。這些可以改變和重新部署。

如果您只使用本地存儲庫,則規則並不那麼強大,但您應該瞭解RELEASE/SNAPSHOT版本的差異。

相關問題