導航:首頁 > 源碼編譯 > maven編譯內存優化

maven編譯內存優化

發布時間:2022-09-09 10:30:07

A. 求教maven

java完全不熟悉,但遇到一個項目,要調試這方面的代碼,用pom管理的,我用maven編譯可以正常通過,但用
maven clean install命令時報如下錯誤, 望高手指點一下。

[info] ------------------------------------------------------------------------
[info] build FAILURE
[info] ------------------------------------------------------------------------
[info] total time: 2.503s
[info] Finished at: sat Jun 11 12:27:15 cst 2011
[INFO] Final Memory: 6M/15M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-war-plugin:2.1.1:war (default-war) on project cdmi-server: Error assembling WAR: Failed to read filesystem attributes for: /usr/cdmi/java/javasrc/target/cdmi-server/WEB-INF/web.xml: Failed to retrieve numeric file attributes using: '/bin/sh -c ls -1nlad /usr/cdmi/java/Javasrc/target/cdmi-server/WEB-INF/web.xml' -> [Help 1]
[ERROR]

B. android Studio編譯慢、卡死和狂佔內存怎麼破

在2020年,仍然使用2g內存的電腦,你可以改變職業。沒有合適的設備,什麼都沒用。Android Studio是內存,設備爛卡死不可避免,要解決卡的問題,一定要升級硬體設備。另一些人則說,對修辭學的回答相當有力,在一定程度上,加快編譯的速度,卻不能解決卡死的問題,沒有人能解釋為什麼會加快編譯的速度。

至於加快編譯,有一種方法,我認為一些主要適用性的答案並不強,實際上應該從gradle開始,什麼不是正確的地方,也請輕噴,有什麼問題可以留個信息。

我談到了下面的所有步驟,建議在最後進行。在終端編譯中有很多好處:

能觀察整個編譯過程,幫助理解層次構建過程;

可以看出哪些任務在編譯過程中耗費時間,可以較慢地編寫出適合的補救方案;

可以終止編譯,如果在某個階段被卡住,CTRL + c終止編譯,Android也會終止在Studio中編譯,但基本上九次會失敗;

因為它最終會對Android Studio產生影響,基本不會導致Android Studio caton;不滿足Android工作室的各種bug ?

最後,為什麼要減少設置中模塊的數量。Gradle實際上可以加速編譯,但是有很多限制?

首先,我們認為編譯過程,首先解析gradle配置,設置任務依賴於有向圖,然後執行每個任務的模塊,如果我們通過maven的依賴關系,使用模塊的aar(單android庫),如果我們想要改變文件在這個模塊,不要再次修改上傳下載,每次都是很好,但是有一個致命的問題:不修改版本號,快照通常不是做的想法。這可能導致一些不會生效的變化,並且需要時間來解決這個問題。但是,有一種方法可以在一定程度上解決這個問題,並添加以下腳本:

項目。配置。所有(新操作<配置> ({@ Overridevoidexecute(配置文件){文件)。ResolutionStrategy。TimeUnit CacheDynamicVersionsFor(5。分鍾)

文件。ResolutionStrategy。TimeUnit CacheChangingMolesFor(0。秒)} })

有人會問,插件,每個人都要開發一個模塊,對於每個模塊的維護都要打包到maven,每次我修改,甚至很小的改動,也要做一個上傳,就會遇到快照不做同樣的問題。嘿,嘿,這個問題,我們公司有一個等級插件,已經解決了,至於解決方案,是公司機密,我不會說。

一件事,我相信大多數開發人員共同發展是單一模塊,該模塊的情況並不多,所以最基本的也是依賴aar或罐子里,並不存在所謂的圖書館aar上傳,所以一些答案的耶和華說並不意味著什麼,這就是為什麼我說影響編譯速度的情況主要集中在它的生命周期的第三階段,第三階段的優化,看到我的答案。

C. Android 開發,Android Studio編譯慢,卡死和狂佔內存怎麼破

已經使用Android Studio進行開發超過一年,隨著項目的增大,依賴庫的增多,構建速度越來越慢,現在最慢要6分鍾才能build一個release的安裝包,在網上查找資料,發現可以通過一些配置可以加快速度,這里跟大家分享一下。
開啟gradle單獨的守護進程
在下面的目錄下面創建gradle.properties文件:
/home/<username>/.gradle/ (Linux)
/Users/<username>/.gradle/ (Mac)
C:\Users\<username>\.gradle (Windows)
並在文件中增加:
org.gradle.daemon=true

同時修改項目下的gradle.properties文件也可以優化:
# Project-wide Gradle settings.
# IDE (e.g. Android Studio) users:
# Settings specified in this file will override any Gradle settings
# configured through the IDE.
# For more details on how to configure your build environment visit
# http://www.gradle.org/docs/current/userguide/build_environment.html
# The Gradle daemon aims to improve the startup and execution time of Gradle.
# When set to true the Gradle daemon is to run the build.
# TODO: disable daemon on CI, since builds should be clean and reliable on servers
org.gradle.daemon=true
# Specifies the JVM arguments used for the daemon process.
# The setting is particularly useful for tweaking memory settings.
# Default value: -Xmx10248m -XX:MaxPermSize=256m
org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
# When configured, Gradle will run in incubating parallel mode.
# This option should only be used with decoupled projects. More details, visit
# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
org.gradle.parallel=true
# Enables new incubating mode that makes Gradle selective when configuring projects.
# Only relevant projects are configured which results in faster builds for large multi-projects.
# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:configuration_on_demand
org.gradle.configureondemand=true

同時上面的這些參數也可以配置到前面的用戶目錄下的gradle.properties文件里,那樣就不是針對一個項目生效,而是針對所有項目生效。
上面的配置文件主要就是做, 增大gradle運行的java虛擬機的大小,讓gradle在編譯的時候使用獨立進程,讓gradle可以平行的運行。
修改android studio配置
在android studio的配置中,開啟offline模式,以及修改配置。實際上的配置和上面的一大段一樣,主要是在這個地方配置的只會在ide構建的時候生效,命令行構建不會生效。

命令行構建
基於上面的配置,命令行構建時在命令後面加上這個參數即可 --daemon --parallel --offline。
引入依賴庫時使用aar
使用網上第三方的依賴庫時盡量使用aar,可以在mavenhttp://gradleplease.appspot.com/或者githuhttps://github.com/Goddchen/mvn-repo搜索。
自己的庫模塊也可以打包成aar,關於這個可以參考stormzhang的文章http://www.stormzhang.com/android/2015/03/01/android-reference-local-aar/。

D. maven build 內存溢出怎麼解決

Windows環境中
找到文件%M2_HOME%\bin\mvn.bat ,這就是啟動Maven的腳本文件,在該文件中你能看到有一行注釋為:
@REM set MAVEN_OPTS=-Xdebug -Xnoagent -Djava.compiler=NONE...
它的意思是你可以設置一些Maven參數,我們就在注釋下面加入一行:
set MAVEN_OPTS= -Xms128m -Xmx512m
之後,當你運行Maven命令如 mvn -version 的時候,你會看到如下的輸出:
E:\test>mvn -version
E:\test>set MAVEN_OPTS= -Xms128m -Xmx512m
Maven version: 2.0.9
Java version: 1.6.0_07
OS name: "windows 2003" version: "5.2" arch: "x86" Family: "windows"
我們看到,配置的Maven選項生效了,OutOfMemoryError也能得以相應的解決。

Linux環境中
也可以通過設置環境變數解決該問題, 如,編輯文件 /etc/profile 如下
MAVEN_OPTS=-Xmx512m
export JAVA_HOME MAVEN_HOME MAVEN_OPTS JAVA_BIN PATH CLASSPATH

如果你使用Hudson
用 Hudson + Maven做持續集成,並不幸也遇到了類似的錯誤,那麼上述兩種方式都將不再起作用了,因為Hudson使用自己的maven-agent來啟動Maven,不會去調用Maven的腳本,自然相應的配置也就無效了。
好在Hudson也給為我們提供了配置點,在Hudson的項目配置頁面中,有一塊Build區域,這里我們已經設置了Root Pom和Goals。注意該區域的右下角有一個"Advanced..."按鈕,點擊會看到MAVEN_OPTS輸入框,這里輸入"-Xmx512m"就 OK了。

m2eclipse中
類似以上的方法都會失效,所幸m2eclipse提供了配置點。步驟如下:
項目上右擊 -> Run As -> Run Configurations -> Maven Build 上右擊 -> New
這時會看到一個maven運行配置對話框,這裡面其它的配置我不多解釋了,為了解決內存溢出的問題,我們可以選擇第二個TAB: JRE,然後在VM arguments中輸入配置如:-Xms128m -Xmx512m

E. Android Studio編譯慢,卡死和狂佔內存怎麼破

已經使用AndroidStudio進行開發超過一年,隨著項目的增大,依賴庫的增多,構建速度越來越慢,現在最慢要6分鍾才能build一個release的安裝包,在網上查找資料,發現可以通過一些配置可以加快速度,這里跟大家分享一下。開啟gradle單獨的守護進程在下面的目錄下面創建gradle.properties文件:/home//.gradle/(Linux)/Users//.gradle/(Mac)C:\Users\\.gradle(Windows)並在文件中增加:org.gradle.daemon=true同時修改項目下的gradle.properties文件也可以優化:#Project-wideGradlesettings.#IDE(e.g.AndroidStudio)users:##configuredthroughtheIDE.###sec:configuration_on_demandorg.gradle.configureondemand=true同時上面的這些參數也可以配置到前面的用戶目錄下的gradle.properties文件里,那樣就不是針對一個項目生效,而是針對所有項目生效。上面的配置文件主要就是做,增大gradle運行的java虛擬機的大小,讓gradle在編譯的時候使用獨立進程,讓gradle可以平行的運行。修改androidstudio配置在androidstudio的配置中,開啟offline模式,以及修改配置。實際上的配置和上面的一大段一樣,主要是在這個地方配置的只會在ide構建的時候生效,命令行構建不會生效。命令行構建基於上面的配置,命令行構建時在命令後面加上這個參數即可--daemon--parallel--offline。引入依賴庫時使用aar使用網上第三方的依賴庫時盡量使用aar,可以在maven/android/2015/03/01/android-reference-local-aar/。

F. 如何用maven將java8寫的代碼編譯為java6平台的

在一般的Java應用開發過程中,開發人員使用Java的方式比較簡單。打開慣用的IDE,編寫Java源代碼,再利用IDE提供的功能直接運行Java 程序就可以了。這種開發模式背後的過程是:開發人員編寫的是Java源代碼文件(.java),IDE會負責調用Java的編譯器把Java源代碼編譯成平台無關的位元組代碼(byte code),以類文件的形式保存在磁碟上(.class)。Java虛擬機(JVM)會負責把Java位元組代碼載入並執行。Java通過這種方式來實現其「編寫一次,到處運行(Write once, run anywhere)」 的目標。Java類文件中包含的位元組代碼可以被不同平台上的JVM所使用。Java位元組代碼不僅可以以文件形式存在於磁碟上,也可以通過網路方式來下載,還可以只存在於內存中。JVM中的類載入器會負責從包含位元組代碼的位元組數組(byte[])中定義出Java類。在某些情況下,可能會需要動態的生成 Java位元組代碼,或是對已有的Java位元組代碼進行修改。這個時候就需要用到本文中將要介紹的相關技術。首先介紹一下如何動態編譯Java源文件。

G. maven 編譯項目問題

maven項目編譯的標准輸出路徑就是mavenProject/target/classes, 項目右鍵 build path--configure build path--java build path--source,把default output folder改成mavenProject/target/classes,在菜單欄project下把自動編譯打勾。

H. 用maven編譯項目時出現「運行mvn clean install -Dmaven.」問題怎麼辦

在/etc/profile配置java的環境變數: 你的mvn 項目是用哪個版本的jdk.,就要配置那個版本的jdk。

強制保存文件命令:w !sudo tee %

此時在進入項目執行:$ git pull origin master

繼續mvn clean install

I. 新手學習maven,出錯了

你的maven在編譯打包的時候無法找到JUnit的JAR包,因此不能完成編譯打包過程。你需要在項目中引入JUnit的包。既然你使用Maven,那麼就可以在Maven中配置依賴JAR包。
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.7</version>
<scope>test</scope>
</dependency>

閱讀全文

與maven編譯內存優化相關的資料

熱點內容
卡爾曼濾波演算法書籍 瀏覽:768
安卓手機怎麼用愛思助手傳文件進蘋果手機上 瀏覽:843
安卓怎麼下載60秒生存 瀏覽:802
外向式文件夾 瀏覽:235
dospdf 瀏覽:430
怎麼修改騰訊雲伺服器ip 瀏覽:387
pdftoeps 瀏覽:492
為什麼鴻蒙那麼像安卓 瀏覽:735
安卓手機怎麼拍自媒體視頻 瀏覽:185
單片機各個中斷的初始化 瀏覽:723
python怎麼集合元素 瀏覽:480
python逐條解讀 瀏覽:832
基於單片機的濕度控制 瀏覽:498
ios如何使用安卓的帳號 瀏覽:882
程序員公園采訪 瀏覽:811
程序員實戰教程要多長時間 瀏覽:974
企業數據加密技巧 瀏覽:134
租雲伺服器開發 瀏覽:813
程序員告白媽媽不同意 瀏覽:335
攻城掠地怎麼查看伺服器 瀏覽:600