Ketika saya menjalankan tes maven, java.lang.OutOfMemoryError terjadi. Saya mencarinya di Google untuk mencari solusi dan telah mencobanya export MAVEN_OPTS=-Xmx1024m
, tetapi tidak berhasil. Ada yang tahu solusi lain untuk masalah ini, BTW Saya menggunakan maven 3.0
Terima kasih sebelumnya
Tempel pesan kesalahan di sini saat menjalankan "mvn test -e"
Tes yang gagal: peringatan (junit.framework.TestSuite $ 1) testDefaultPigJob_1 (com.snda.dw.pig.impl.DefaultPigJobLocalTest) testDefaultPigJob_2 (com.snda.dw.pig.impl.DefaultPigJobLocalTest) Pengujian yang dijalankan: 11, Kegagalan: 3, Kesalahan: 0, Dilewati: 0 10/11/01 13:37:18 INFO executionengine.HExecutionEngine: Menghubungkan ke hadoop fi le sistem di: file: /// [INFO] ----------------------------------------------- ------------------------- [INFO] BUILD FAILURE [INFO] ----------------------------------------------- ------------------------- [INFO] Total waktu: 30.063s [INFO] Selesai pada: Sen 01 Nov 13:37:18 PDT 2010 [INFO] Memori Akhir: 3M / 6M [INFO] ----------------------------------------------- ------------------------- [ERROR] Gagal menjalankan tujuan org.apache.maven.plugins: maven-surefire-plugin: 2. 5: test (default-test) pada proyek dw.pig: Ada kegagalan pengujian. [KESALAHAN] [ERROR] Silakan merujuk ke E: \ Code \ Java \ workspace \ dw.pig \ target \ surefire-reports fo r hasil tes individu. [ERROR] -> [Bantuan 1] org.apache.maven.lifecycle.LifecycleExecutionException: Gagal menjalankan tujuan o rg.apache.maven.plugins: maven-surefire-plugin: 2.5: test (default-test) pada proyek dw.pig: Ada kegagalan pengujian. Silakan merujuk ke E: \ Code \ Java \ workspace \ dw.pig \ target \ surefire-laporan untuk di hasil tes bagi hasil. di org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor .java: 199) di org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor .java: 148) di org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor .java: 140) di org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProje ct (LifecycleModuleBuilder.java:84) di org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProje ct (LifecycleModuleBuilder.java:59) di org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBu ild (LifecycleStarter.java:183) di org.apache.maven.lifecycle.internal.LifecycleStarter.execute (Lifecycl eStarter.java:161) di org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:314) di org.apache.maven.DefaultMaven.execute (DefaultMaven.java:151) di org.apache.maven.cli.MavenCli.execute (MavenCli.java:445) di org.apache.maven.cli.MavenCli.doMain (MavenCli.java:168) di org.apache.maven.cli.MavenCli.main (MavenCli.java:132) di sun.reflect.NativeMethodAccessorImpl.invoke0 (Metode Asli) di sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl. java: 39) di sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAcces sorImpl.java:25) di java.lang.reflect.Method.invoke (Method.java:597) di org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Laun cher.java:290) di org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.jav a: 230) di org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (La uncher.java:409) di org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java: 352) Disebabkan oleh: org.apache.maven.plugin.MojoFailureException: Ada kegagalan pengujian . Silakan merujuk ke E: \ Code \ Java \ workspace \ dw.pig \ target \ surefire-laporan untuk di hasil tes bagi hasil. di org.apache.maven.plugin.surefire.SurefirePlugin.execute (SurefirePlugi n.java:629) di org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (Default BuildPluginManager.java:107) di org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor .java: 195) ... 19 lagi [KESALAHAN] [ERROR] Jalankan ulang Maven menggunakan sakelar -X untuk mengaktifkan logging debug penuh. [KESALAHAN] [ERROR] Untuk informasi lebih lanjut tentang kesalahan dan solusi yang mungkin, mohon perhatiannya d artikel berikut: [ERROR] [Bantuan 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureExc
java
maven
out-of-memory
zjffdu.dll
sumber
sumber
Jawaban:
Mengatur
Xmx
opsi menggunakanMAVEN_OPTS
tidak berfungsi, itu mengkonfigurasi JVM yang digunakan untuk memulai Maven. Dengan demikian, maven-surefire-plugin fork JVM baru secara default, dan AndaMAVEN_OPTS
tidak diteruskan.Untuk mengkonfigurasi ukuran JVM yang digunakan oleh maven-surefire-plugin, Anda harus:
forkMode
menjadinever
(yang bukan ide bagus karena Maven tidak akan terisolasi dari pengujian) ~ atau ~argLine
parameter (dengan cara yang benar):Dalam kasus selanjutnya, sesuatu seperti ini:
Tetapi saya harus mengatakan bahwa saya cenderung setuju dengan Stephen di sini, sangat mungkin ada sesuatu yang salah dengan salah satu tes Anda dan saya tidak yakin bahwa memberikan lebih banyak memori adalah solusi yang tepat untuk "memecahkan" (menyembunyikan?) Masalah Anda.
Referensi
sumber
forkMode
tidak lagi digunakan: maven.apache.org/surefire/maven-surefire-plugin/…forkMode
sudah tidak digunakan lagi, tapi saya pikir hanya untuk diganti denganforkCount
yang memiliki fungsi serupa. Salah satu cara Anda dapat menggunakan MAVEN_OPTS adalah<argLine>${env.MAVEN_OPTS}</argLine>
tetapi itu tampaknya tidak disarankan karena dapat bervariasi dari komputer ke komputer ( stackoverflow.com/a/10463133/32453 ). Perhatikan juga bahwa jika Anda menggunakan jacoco, Anda seharusnya menyetel argLine dengan cara yang berbeda stackoverflow.com/questions/12269558/maven-jacoco-plugin-errorBagi mereka yang baru mengenal Maven (seperti saya), inilah seluruh konfigurasi yang ada di bagian build pom Anda. Bersulang.
sumber
Kemungkinan besar masalahnya ada di salah satu unit test yang Anda minta untuk dijalankan Maven.
Karena itu, mengutak-atik ukuran heap adalah pendekatan yang salah. Sebagai gantinya, Anda harus melihat pengujian unit yang menyebabkan OOME, dan mencoba mencari tahu apakah itu adalah kesalahan pengujian unit atau kode yang diujinya.
Mulailah dengan melihat jejak tumpukan. Jika tidak ada, jalankan
mvn ... test
lagi dengan-e
opsi.sumber
Untuk mengatasi masalah ini sementara, saya menemukan yang berikut ini sebagai cara tercepat:
sumber
Saya telah memecahkan masalah ini di pihak saya dengan 2 cara:
Menambahkan konfigurasi ini di pom.xml
Beralih ke JDK 1.7 yang digunakan, bukan 1.6
sumber
Untuk menyelesaikan java.lang.OutOfMemoryError: Java heap space di Maven, coba konfigurasikan konfigurasi di bawah ini di pom
sumber
Tidak hanya memori heap. juga meningkatkan ukuran perm untuk menyelesaikan pengecualian itu di maven menggunakan variabel ini dalam variabel lingkungan.
Contoh:
sumber