我希望能夠在離線狀態下從Maven原型啓動項目。但是我無法找到有關如何緩存Maven原型以供脫機使用的明確說明。有人有建議嗎?Maven Archetypes的離線緩存
回答
Maven原型畢竟是一個神器,因此它將在Maven第一次使用時自動緩存。以後的使用將始終運行提取的工件(從本地緩存)。我們也可以強制Maven只使用緩存(離線模式,如下所述)。
因此,您可以簡單地調用相關原型一次(即爲一個虛擬項目),並讓它們脫機進一步調用。
如果您確實想要預先緩存它,可以使用Maven Dependency Plugin及其get目標將原型工件添加到本地Maven緩存中。
例如,讓我們緩存Maven Quickstart Archetype如下:
mvn dependency:get -DgroupId=org.apache.maven.archetypes \
-DartifactId=maven-archetype-quickstart -Dversion=1.0
它會因此對你的本地Maven緩存maven-archetype-quickstart-1.0.jar
神器存儲。
如果你不知道你的本地Maven緩存,您可以使用Maven Help Plugin並運行:
mvn help:evaluate -Dexpression=settings.localRepository
由於詳細輸出的一部分,你會得到的完整路徑本地Maven緩存。
由於現在的快速啓動原型是我們的緩存,我們可以使用-o
標誌(下線,強制)爲Maven的調用
mvn archetype:generate -DarchetypeGroupId=org.apache.maven.archetypes \
-DarchetypeArtifactId=maven-archetype-quickstart -DarchetypeVersion=1.0 \
-DgroupId=com.sample -DartifactId=test -Dversion=1.0-SNAPSHOT -B -o
這樣運行它,Maven將運行脫機執行並只使用其本地緩存。
注意,你也可以使用archetypeCatalog
選項,同時調用archetype:generate
並將其設置爲local
只檢查本地目錄,但強制執行,以離線模式(-o
)將更好地滿足您的需要(迫使本地目錄和本地緩存的原型)。
Maven的原型機制依賴於目錄。目錄是maven檢查可用的原型的XML文件。 如在Chapter 12.4Maven: The complete reference狀態:
原型目錄是一個XML文件,該文件Maven Archetype插件可以諮詢以定位在儲存庫中的原型。
通過抓取本地存儲庫中的可用原型,可以創建緩存原型的類別(已下載)。這是通過調用crawl mojo:
mvn archetype:crawl
這將在~/.m2/repository/archetype-catalog.xml
創建一個XML文件。
一旦創建(你可以通過附加-Dcatalog=<filename>
指定路徑),你可以使用命令
mvn archetype:generate -DarchetypeCatalog=file://<fullpath of catalog file>
例如
mvn archetype:generate -DarchetypeCatalog=file:///home/username/.m2/repository/archetype-catalog.xml
使用新創建的目錄生成項目。它會只有顯示可用(緩存)的原型給你,這些可以離線使用。
附錄:
我猜你會使用MVN原型:產生更多的時候,所以你可能想以此來最大限度地減少打字:
1)生成.m2/archetype-catalog.xml
下的XML原型目錄 -
mvn archetype:crawl -Dcatalog=/home/<username>/.m2/archetype-catalog.xml
2)使用MVN原型:生成-DarchetypeCatalog =本地(此訪問.m2/archetype-catalog.xml
)
mvn archetype:generate -DarchetypeCatalog=local
這是一個好主意,一旦在線使用它,以便下載所有必要的插件。例如,Archetype Plugin和潛在的其他人。
- 1. HTML5離線緩存
- 2. HTML5更新離線緩存
- 3. HTML5離線緩存大小
- 4. iPhone緩存/離線地圖?
- 5. 訪問緩存orientdb離線
- 6. Maven Archetypes等效的Ruby on Rails
- 7. Ext JS Licensing瀏覽器離線緩存
- 8. 在離線緩存中使用Ajax
- 9. C#離線數據庫寫入緩存#
- 10. 自我緩存網站離線html5
- 11. 如何擺脫HTML5離線緩存?
- 12. Webview不加載離線緩存數據
- 13. HTML5僅在離線時使用緩存
- 14. Android可以緩存緩存清單HTML5視頻離線嗎?
- 15. Tycho Maven離線構建
- 16. 體面的html5離線存儲和緩存示例
- 17. Firefox的離線存儲緩存目錄在哪裏?
- 18. 離線緩存和本地存儲的iOS Web應用程序
- 19. 關於HTML5離線存儲和緩存的iPad應用程序
- 20. html5離線緩存緩存所有文件,而不是緩存中列出的文件
- 21. 混合應用程序中的離線數據緩存機制
- 22. 使用緩存控制標題的離線web應用程序?
- 23. 如何清除IE11中的離線網站緩存?
- 24. HTML離線應用程序緩存,清單下載的文件
- 25. 如何緩存離線模式下的網頁內容?
- 26. Android中的持久/離線圖像緩存
- 27. 模擬HTML5高速緩存測試的離線模式
- 28. 緩存谷歌地圖與HTML5的iPhone離線使用錯誤
- 29. 使用jquery緩存indexeddb中的圖像以供離線使用
- 30. Android衛星視圖和離線緩存的最佳地圖API
但是該目錄將只提供已經被緩存的內容,而問題更多的是關於如何緩存原型的前端。此外,如果原型已經被緩存,實際上不需要重新創建本地目錄。無論如何,好的一點就是提及它。 –