Как диагностировать ошибки Maven после обновления до Java 11 - PullRequest
0 голосов
/ 25 октября 2018

TLDR: я обновил Java до последней версии Maven, но у Maven возникли проблемы.Сначала ему не хватает памяти для запуска JVM.Когда память увеличивается> 1,5 ГБ, он говорит, что не может выделить метапространство.Уменьшение памяти до 1,2 Г или около того дает ошибку связи.Что здесь происходит?

Подробности: Иногда он жалуется на неправильное отражение какой-либо библиотекой Google вместо ошибки ссылки, хотя сообщения об ошибках, похоже, зависят от порядка, в котором я пробую, и их трудно воспроизвести точно.

Вот точный вывод в одном случае:

>export MAVEN_OPTS="-Xmx1600m"
>mvn -version
Error occurred during initialization of VM
Could not allocate metaspace: 1073741824 bytes
>export MAVEN_OPTS="-Xmx1000m"
>mvn -version
Apache Maven 3.5.4 (1edded0938998edf8bf061f1ceb3cfdeccf443fe; 2018-06-17T14:33:14-04:00)
Maven home: /usr/local/apache-maven-3.5.4
Java version: 11, vendor: Oracle Corporation, runtime: /usr/lib/jvm/java-11-openjdk-amd64
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "4.15.0-38-generic", arch: "amd64", family: "unix"
>mvn install
#
# There is insufficient memory for the Java Runtime Environment to continue.
# Native memory allocation (malloc) failed to allocate 48192 bytes for Chunk::new
# An error report file with more information is saved as:
# /home/zach/sync_docs/fs/runner/hs_err_pid5590.log
[thread 5617 also had an error]
#
# Can't open file to dump replay data. Error: Not enough space
>export MAVEN_OPTS="-Xmx1200m"
>mvn install
Error: LinkageError occurred while loading main class org.codehaus.plexus.classworlds.launcher.Launcher
    java.lang.UnsatisfiedLinkError: /usr/lib/jvm/java-11-openjdk-amd64/lib/libnio.so: /usr/lib/jvm/java-11-openjdk-amd64/lib/libnio.so: failed to map segment from shared object

Дальнейший вывод:

>echo $JAVA_HOME
/usr/lib/jvm/java-11-openjdk-amd64/

ОС: Ubuntu 18.04.1 Это даже не будет работать, если япопросите его скомпилировать Java 8 JAR, хотя иногда он начинает пытаться и быстро терпит неудачу.javac успешно компилирует программу hello world, и java успешно запускает ее.Возвращение к Java 8 (либо java-8-openjdk, либо java-8-oracle в случае, если они различаются) с использованием альтернативных обновлений устраняет проблему (но без функций Java 11).

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>org.boydwebb</groupId>
    <artifactId>familysearch</artifactId>
    <version>1.0-SNAPSHOT</version>

    <packaging>jar</packaging>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <java.compiler.version>1.8</java.compiler.version>
    </properties>

    <build>
        <plugins>
            <plugin>
                <version>3.3</version>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>${java.compiler.version}</source>
                    <target>${java.compiler.version}</target>
                </configuration>
</plugin>
<plugin>
    <artifactId>maven-assembly-plugin</artifactId>
    <configuration>
        <descriptorRefs>
            <descriptorRef>jar-with-dependencies</descriptorRef>
        </descriptorRefs>
        <finalName>graph-runner</finalName>
        <appendAssemblyId>true</appendAssemblyId>
        <archive>
            <manifest>
                <mainClass>org.boydwebb.familysearch.runner.Runner</mainClass>
            </manifest>
        </archive>
    </configuration>
    <executions>
        <execution>
            <id>make-assembly</id>
            <phase>package</phase>
            <goals>
                <goal>single</goal>
            </goals>
        </execution>
    </executions>
</plugin>
    </plugins>
  </build>

  <dependencies>
      <!-- unimi dependencies
     the unimi project versions MUST be as shown here -->
    <dependency>
        <groupId>it.unimi.dsi</groupId>
        <artifactId>webgraph</artifactId>
        <version>3.6.1</version>
    </dependency>

    <dependency>
        <groupId>it.unimi.dsi</groupId>
        <artifactId>sux4j</artifactId>
        <version>4.3.0</version>
    </dependency>

    <dependency>
        <groupId>it.unimi.dsi</groupId>
        <artifactId>fastutil</artifactId>
        <version>8.2.2</version>
    </dependency>

    <dependency>
        <groupId>it.unimi.dsi</groupId>
        <artifactId>dsiutils</artifactId>
        <version>2.5.4</version>
    </dependency>

    <!-- required for runner utilities -->
    <dependency>
        <groupId>org.apache.hadoop</groupId>
        <artifactId>hadoop-core</artifactId>
        <version>1.2.1</version>
    </dependency>

    <!-- logging -->
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>log4j-over-slf4j</artifactId>
        <version>1.8.0-beta2</version>
    </dependency>

    <!-- command line option parsing -->
    <dependency>
        <groupId>net.sf.jopt-simple</groupId>
        <artifactId>jopt-simple</artifactId>
        <version>6.0-alpha-2</version>
    </dependency>
    <dependency>
        <groupId>org.jetbrains</groupId>
        <artifactId>annotations</artifactId>
        <version>16.0.3</version>
        <scope>compile</scope>
    </dependency>

    <!-- hdf5 -->
    <!--<dependency>
        <groupId>org.hdfgroup</groupId>
        <artifactId>hdf-java</artifactId>
        <version>2.6.1</version>
        <type>jar</type>
    </dependency>-->
    <dependency>
        <groupId>HDF_Group</groupId>
        <artifactId>HDFJava</artifactId>
        <version>3.3.2</version>
        <type>jar</type>
    </dependency>


  </dependencies>
</project>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...