2

我正在尝试为 tomcat 7 使用 Apache maven tomcat 插件,所以我在 pom 文件中添加了以下依赖项:

        <dependency>
            <groupId>org.codehaus.plexus</groupId>
            <artifactId>plexus-classworlds</artifactId>
            <version>2.4</version>
        </dependency>

插件配置

            <plugin>

                <groupId>org.apache.tomcat.maven</groupId>
                <artifactId>tomcat7-maven-plugin</artifactId>
                <version>2.0-SNAPSHOT</version>
                <configuration>
                    <path>/${project.build.finalName}</path>
                </configuration>


            </plugin>

存储库

<repositories>

        <repository>
            <id>people.apache.snapshots</id>
            <url>http://people.apache.org/repo/m2-snapshot-repository</url>
            <releases>
                <enabled>false</enabled>
            </releases>
            <snapshots>
                <enabled>true</enabled>
            </snapshots>
        </repository>

</repositories>


<pluginRepositories>
        <pluginRepository>
            <id>apache.snapshots</id>
            <name>Apache Snapshots</name>
            <url>http://people.apache.org/repo/m2-snapshot-repository</url>
            <releases>
                <enabled>false</enabled>
            </releases>
            <snapshots>
                <enabled>true</enabled>
            </snapshots>
        </pluginRepository>
    </pluginRepositories>

Maven 选项

-Xmx512m -Xms256m -XX:MaxPermSize=512m

但是当使用 mvn tomcat7:run 运行应用程序时,出现以下异常:

org.codehaus.classworlds.NoSuchRealmException: plexus.core
        at org.codehaus.classworlds.ClassWorld.getRealm(ClassWorld.java:128)
        at org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:434)
        at org.codehaus.classworlds.Launcher.main(Launcher.java:375)

任何想法为什么?我是不是配置有问题,或者我遗漏了什么,请指教,谢谢。

4

3 回答 3

5

当我收到此错误时,我试图在 jenkins 上 mvn 打包一个 maven:grails 应用程序。奇怪的是,我让它在我的旧 hudson ci 服务器上运行。为了解决这个问题,我所要做的就是将以下 JVM 选项添加到 package 命令的配置中:

-Xmx2048m -Xms512m -XX:MaxPermSize=1024m

詹金斯作业配置>构建>调用顶级Maven目标>高级...

点击“高级...”

在此处输入图像描述

于 2012-04-27T20:35:49.233 回答
2

我自己在使用它时遇到了同样的问题。看起来,当 plexus 代码运行时,它不能很好地处理 OutOfMemory 异常。如果在构建期间增加分配给 JVM 的内存量,您会发现错误消失了。问题是堆栈的 PermSize。有关如何配置 JVM 内存的详细信息,请参阅此链接:Java JVM 内存入门。

尝试使用如下设置:

  • -Xmn256m
  • -Xms512m
  • -Xmx1536m
  • -Xss1m
  • -XX:PermSize=512m
  • -XX:MaxPermSize=768m
  • 于 2013-08-21T12:25:02.190 回答
    0

    通过控制台运行:

    mvn clean install -DXms512m -DXmx2048m -DXX:MaxPermSize=1024m
    

    或者设置环境参数:

    export MAVEN_OPTS="-Xms512m -Xmx2048m -XX:MaxPermSize=1024m"
    

    使用系统环境文件:在“/etc/environment”文件中添加 MAVEN_OPTS="-Xms512m -Xmx2048m -XX:MaxPermSize=1024m"。

    下一次运行:

    mvn clean install
    

    在 Eclipse 中使用,添加到 MVN 参数如下:

    -DXms512m -DXmx2048m -DXX:MaxPermSize=1024m
    

    (对我有用)

    于 2015-05-27T15:03:42.197 回答