سؤال

كيفية تعيين وسيطات VM ل Jetty Run من Maven-Jetty-Plugin؟

على سبيل المثال، أحتاج إلى المرور -Xmx حجج إلى Jetty يديرها mvn jetty:run أمر.

هل كانت مفيدة؟

المحلول

المظهر المتغير البيئي هو الجواب الصحيح. يتم تمرير محتوى سلسلة MAVEN_OPTS إلى JVM (Java.exe).

  • لينكس: في نوع شل export MAVEN_OPTS=....
  • ويندوز: في شل (cmd.exe) set MAVEN_OPTS=...

على سبيل المثال: على ويندوز set MAVEN_OPTS="-Xmx1024m" يحدد حجم كومة عملية Maven إلى 1024 ميغابايت.

تحديث (01.04.2013): تمريرها مباشرة إلى رصيف.

ماثيو فرويل (يرجى التصويف إجابته لإعطائه الائتمان) يأتي مع حل باستخدام عملية JVM متشعبة لتشغيل رصيف ميزة جديدة من البرنامج المساعد Jetty. وبعد هذا هو الحل الأفضل حيث يعمل السابق داخل عملية JVM نفسها ك Maven (وبالتالي تشارك الذاكرة).

نصائح أخرى

مع إصدارات أكثر حداثة من المكون الإضافي Maven-Jetty، يمكنك استخدامها mvn:run-forked. وبعد سيسمح لك خيار JVMARGS بضبط -xmx وما إلى ذلك

لمزيد من المعلومات، راجع: Jetty: Run-forked: تشغيل ويب غير مثقف في JVM منفصلة.

أعتقد أن القضية الأصلية كانت بدء رصيف في منفصلة JVM.

يبدو أن نهجك الحالي صحيح - عند تشغيل رصيف من خلال Maven، Jetty هو موضوع داخل عملية Maven. لذا فإن زيادة كومة مافنز سوف تزيد من كومة رصاصة.

كيف تضع Maven_opts؟

مثال واحد وجدته يبدو وكأنه هذا: MAVEN_OPTS='-Xmx256m -Xms10m' mvn clean jetty:run

لاحظ أن MAVEN_OPTS هو متغير بيئة هنا، ولم يتم تمريره إلى JVM (الذي لن يعرف ماذا يفعل به).

لتحديد وسيطات VM عبر سطر الأوامر (كما هو مطلوب في الأصل) يمكنك القيام بما يلي:

mvn clean install -DargLine="-Xmx1524m" 

ال <jvmArgs> نذير المذكورة هنا: مافن المكونات المكونة لم تنجح بالنسبة لي.

الإصدار: اباتشي مافن 3.0.3

نسخة المكونات المكونة ل Jetty Maven: Jetty-Maven-Plugin: 8.1.10.v20130312

هذا عملت:

MAVEN_OPTS='-Xmx4096m -Xms4096m'
export MAVEN_OPTS
mvn jetty:run &

على لينكس / يونيكس

export MAVEN_OPTS="-Xmx256m" && mvn clean install jetty:run

سوف تفعل الخدعة

يسمح لك البرنامج المساعد بتحديد JVMARGS مثل هذا:

<plugin>
<groupId>org.mortbay.jetty</groupId>
<artifactId>jetty-maven-plugin</artifactId>
<configuration>
    <jvmArgs>-Xmx1024</jvmArgs>
    <scanIntervalSeconds>10</scanIntervalSeconds>
    <connectors>
        <connector implementation="org.eclipse.jetty.server.nio.SelectChannelConnector">
            <port>8080</port>
            <maxIdleTime>60000</maxIdleTime>
        </connector>
    </connectors>
    <webAppConfig>
        <jettyEnvXml>jetty-env.xml</jettyEnvXml>
    </webAppConfig>
</configuration>
<executions>
    <execution>
        <phase>test</phase>
        <goals>
            <goal>run-exploded</goal>
        </goals>
    </execution>
</executions>
</plugin>

يمكنك استخدامها لتمرير الوسيطة -xmx مثل؛

<plugin>
            <groupId>org.eclipse.jetty</groupId>
            <artifactId>jetty-maven-plugin</artifactId>
            <version></version>
            <configuration>
                <jvmArgs>-Xmx -Xms -XX:PermSize= -XX:MaxPermSize= -XX:+HeapDumpOnOutOfMemoryError</jvmArgs>
                <scanIntervalSeconds>1</scanIntervalSeconds>
                <stopKey>stop-jetty</stopKey>
                <stopPort>9999</stopPort>
                <systemProperties>
                    <systemProperty>
                        <name>jetty.port</name>
                        <value>9090</value>
                    </systemProperty>
                    <systemProperty>
                        <name>spring.profiles.active</name>
                        <value></value>
                    </systemProperty>
                </systemProperties>

                <webApp>
                    <contextPath>/</contextPath>
                </webApp>
            </configuration>
        </plugin>

لا توجد طريقة باستخدام commandline. ولكن يمكنك نسخ mvn.cmd / mvn.sh ل mvnhp.cmd وتغيير الخط

%MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %CLASSWORLDS_JAR% "-Dclassworlds.conf=%M2_HOME%\bin\m2.conf" "-Dmaven.home=%M2_HOME%" "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %CLASSWORLDS_LAUNCHER% %MAVEN_CMD_LINE_ARGS%

ل

%MAVEN_JAVA_EXE% -Xmx1024m %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %CLASSWORLDS_JAR% "-Dclassworlds.conf=%M2_HOME%\bin\m2.conf" "-Dmaven.home=%M2_HOME%" "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %CLASSWORLDS_LAUNCHER% %MAVEN_CMD_LINE_ARGS%
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top