Maven与JVM的关系
Maven and JVM relation
虽然不是直接的编程问题,但它与 Maven 和 JVM 有关
当我经历这个时 link - http://maven.apache.org/archives/maven-1.x/reference/command-line.html
link 的更新:https://wiki.openstack.org/wiki/Documentation/Troubleshooting
https://maven.apache.org/docs/3.0/release-notes.html
它说 MAVEN_OPTS
"使用MAVEN_OPTS环境变量指定附加选项。它用于在运行ning Maven时将参数传递给Java VM。例如,到将整个 运行 Maven 的内存量增加到 1024 Meg,使用:
MAVEN_OPTS=-Xmx1024m "
问题:
Maven 如何设置 JVM 属性?
为什么 Maven 需要 JVM?它只是构建 war 并且仅当您将 WAR 部署到 appserver.right 时才需要 JVM?
Maven是否启动JVM并在使用后停止?如果它在使用后停止,设置更多堆大小有什么意义?
我研究后的理解:
(1) How/Why Maven可以设置JVM属性吗?
- Maven 将能够使用 MAVEN_OPTS 设置 JVM 属性。
就是给JVM传参数给Maven
的那个运行
(2) 为什么Maven需要JVM? Maven 只是一个构建工具..
- Maven 必须构建 WAR 文件,对吧?要构建 WAR 文件,您需要编译代码,
有时 运行 测试用例。要编译代码,您需要 JVM。要 运行 测试用例,您需要 JVM。
当我们执行 mvn clean deploy 时,不知道还有什么地方需要 JVM。
[例如 javac 以其他方式传递 JVM 参数:
javac -d build/classes -classpath ... -J-Xms256m -J-Xmx1024m java-source-files
]
(3) Maven是否启动JVM并在使用后停止?如果它在使用后停止,设置更多堆大小有什么意义?
- 是的,Maven 启动 JVM 并在使用后停止。 运行期间需要JVM。就像如果 maven 构建需要大量内存 [就像如果你做 XML 处理] 那么
使用 MAVEN_OPTS 设置堆内存会有帮助。
请具体说明我的理解,尤其是第二个问题
mvn
是一个 shell script/batch 文件,它使用 MAVEN_OPTS
来执行您期望的操作。
- Maven 是 Java。 Maven任务写在Java.
- ……? Maven 做了很多事情,其中一些事情会使用内存。这只是一个 Java 程序。当它结束 运行 的 JVM 时,它也会结束。
为了进一步阐明第 1 点,这是脚本末尾发生的事情:
exec "$JAVACMD" \
$MAVEN_OPTS \
-classpath "${M2_HOME}"/boot/plexus-classworlds-*.jar \
"-Dclassworlds.conf=${M2_HOME}/bin/m2.conf" \
"-Dmaven.home=${M2_HOME}" "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \
${CLASSWORLDS_LAUNCHER} "$@"
注意:为什么要阅读 Maven 1 文档?
Maven 是用 Java 编写的程序。该程序用于编译文件、复制文件、制作 jar 文件以及许多其他任务。与任何 Java 程序一样,它需要一个 JVM 才能 运行。和任何 Java 程序一样,它使用内存。和任何使用内存的 Java 程序一样,如果您没有使用足够的内存启动 JVM,它可能会导致内存错误。
mvn
能够设置 JVM 属性,因为它是一个启动 Java 程序的简单 shell 脚本:Maven。
是的,一旦 mvn 退出,它开始 运行 它需要 运行 的所有任务的 JVM 也会退出。
虽然不是直接的编程问题,但它与 Maven 和 JVM 有关
当我经历这个时 link - http://maven.apache.org/archives/maven-1.x/reference/command-line.html
link 的更新:https://wiki.openstack.org/wiki/Documentation/Troubleshooting
https://maven.apache.org/docs/3.0/release-notes.html
它说 MAVEN_OPTS
"使用MAVEN_OPTS环境变量指定附加选项。它用于在运行ning Maven时将参数传递给Java VM。例如,到将整个 运行 Maven 的内存量增加到 1024 Meg,使用: MAVEN_OPTS=-Xmx1024m "
问题: Maven 如何设置 JVM 属性? 为什么 Maven 需要 JVM?它只是构建 war 并且仅当您将 WAR 部署到 appserver.right 时才需要 JVM? Maven是否启动JVM并在使用后停止?如果它在使用后停止,设置更多堆大小有什么意义?
我研究后的理解:
(1) How/Why Maven可以设置JVM属性吗?
- Maven 将能够使用 MAVEN_OPTS 设置 JVM 属性。 就是给JVM传参数给Maven 的那个运行
(2) 为什么Maven需要JVM? Maven 只是一个构建工具..
- Maven 必须构建 WAR 文件,对吧?要构建 WAR 文件,您需要编译代码,
有时 运行 测试用例。要编译代码,您需要 JVM。要 运行 测试用例,您需要 JVM。
当我们执行 mvn clean deploy 时,不知道还有什么地方需要 JVM。
[例如 javac 以其他方式传递 JVM 参数:
javac -d build/classes -classpath ... -J-Xms256m -J-Xmx1024m java-source-files
]
(3) Maven是否启动JVM并在使用后停止?如果它在使用后停止,设置更多堆大小有什么意义?
- 是的,Maven 启动 JVM 并在使用后停止。 运行期间需要JVM。就像如果 maven 构建需要大量内存 [就像如果你做 XML 处理] 那么 使用 MAVEN_OPTS 设置堆内存会有帮助。
请具体说明我的理解,尤其是第二个问题
mvn
是一个 shell script/batch 文件,它使用MAVEN_OPTS
来执行您期望的操作。- Maven 是 Java。 Maven任务写在Java.
- ……? Maven 做了很多事情,其中一些事情会使用内存。这只是一个 Java 程序。当它结束 运行 的 JVM 时,它也会结束。
为了进一步阐明第 1 点,这是脚本末尾发生的事情:
exec "$JAVACMD" \
$MAVEN_OPTS \
-classpath "${M2_HOME}"/boot/plexus-classworlds-*.jar \
"-Dclassworlds.conf=${M2_HOME}/bin/m2.conf" \
"-Dmaven.home=${M2_HOME}" "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \
${CLASSWORLDS_LAUNCHER} "$@"
注意:为什么要阅读 Maven 1 文档?
Maven 是用 Java 编写的程序。该程序用于编译文件、复制文件、制作 jar 文件以及许多其他任务。与任何 Java 程序一样,它需要一个 JVM 才能 运行。和任何 Java 程序一样,它使用内存。和任何使用内存的 Java 程序一样,如果您没有使用足够的内存启动 JVM,它可能会导致内存错误。
mvn
能够设置 JVM 属性,因为它是一个启动 Java 程序的简单 shell 脚本:Maven。
是的,一旦 mvn 退出,它开始 运行 它需要 运行 的所有任务的 JVM 也会退出。