Проблема несоответствия JAVA_HOME с maven

Я нахожусь на грани выпуска проекта, но кажется, что JAVA_HOME несовместим. Может быть, это было переопределено где-то в другом месте? Я использую ubuntu 14.04, и у меня есть openjdk-7, java-7-oracle, java-8-oracle. Значение по умолчанию java было установлено с помощью update-java-alternatives

java -version

java version "1.8.0_25"
Java(TM) SE Runtime Environment (build 1.8.0_25-b17)
Java HotSpot(TM) 64-Bit Server VM (build 25.25-b02, mixed mode)

mvn -version дает следующий выход

Apache Maven 3.2.1 (ea8b2b07643dbb1b84b6d16e1f08391b666bc1e9; 2014-02-14T17:37:52+00:00)
Maven home: /usr/share/maven3
Java version: 1.8.0_25, vendor: Oracle Corporation
Java home: /usr/lib/jvm/java-8-oracle/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "3.13.0-39-generic", arch: "amd64", family: "unix"

Но когда вы делаете mvn release: подготовьте, ниже - это то, что я вижу:

[INFO] Not generating release POMs
[INFO] Executing goals 'clean verify'...
[WARNING] Maven will be executed in interactive mode, but no input stream has been configured for this MavenInvoker instance.
[INFO] Error: JAVA_HOME is not defined correctly.
[INFO]   We cannot execute /usr/lib/jvm/java-8-oracle/bin/java/bin/java

Похоже, что исполняемый файл java находится в неправильной папке: /java/bin/java. Я попробовал изменить java-сайт на /usr/lib/jvm/java-8-orable/bin, но он нарушил проверку mvn-version.

Как это исправить? Спасибо за чтение

Я не могу найти здесь, чтобы это исправить. Кто-нибудь сталкивался с чем-то похожим?

РЕДАКТИРОВАТЬ 1:

 <build>
    <pluginManagement>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>2.12</version>
                <configuration>
                    <excludes>
                        <exclude>**/*ITest.java</exclude>
                    </excludes>
                </configuration>
            </plugin>
            <plugin>
                <artifactId>maven-failsafe-plugin</artifactId>
                <version>2.6</version>
                <executions>
                    <execution>
                        <goals>
                            <goal>integration-test</goal>
                            <goal>verify</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>2.0.2</version>
                <configuration>
                    <source>1.7</source>
                    <target>1.7</target>
                    <encoding>${project.build.sourceEncoding}</encoding>
                    <meminitial>128m</meminitial>
                    <maxmem>512m</maxmem>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-resources-plugin</artifactId>
                <version>2.4.3</version>
                <configuration>
                    <encoding>${project.build.sourceEncoding}</encoding>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-release-plugin</artifactId>
                <version>2.3.2</version>
                <configuration>
                    <preparationGoals>clean verify</preparationGoals>
                    <tagBase>https://xxxx/svn/projectname/tags</tagBase>
                </configuration>
            </plugin>
            <plugin>
                <groupId>com.mysema.maven</groupId>
                <artifactId>maven-apt-plugin</artifactId>
                <version>1.0</version>
            </plugin>

            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>build-helper-maven-plugin</artifactId>
                <version>1.9</version>
            </plugin>
        </plugins>
    </pluginManagement>
</build>

Я переключился на java-7-оракул и до сих пор нет шансов:

[INFO] Executing goals 'clean verify'...
[WARNING] Maven will be executed in interactive mode, but no input stream has been configured for this MavenInvoker instance.
[INFO] Error: JAVA_HOME is not defined correctly.
[INFO]   We cannot execute /usr/lib/jvm/java-7-oracle/bin/java/bin/java

ИЗМЕНИТЬ 2:

Уважаемые избиратели, я не прошу о том, как установить Java Home. Он был установлен на

/usr/lib/jvm/java-8-oracle

Затем, когда я попытался запустить то же самое с java 7

/usr/lib/jvm/java-7-oracle

Это установлено в файле /etc/profile.d/jdk.sh с помощью webup8 script

export J2SDKDIR=/usr/lib/jvm/java-7-oracle
export J2REDIR=/usr/lib/jvm/java-7-oracle/jre
export PATH=$PATH:/usr/lib/jvm/java-7-oracle/bin:/usr/lib/jvm/java-7-oracle/db/bin:/usr/lib/jvm/java-7-oracle/jre/bin
export JAVA_HOME=/usr/lib/jvm/java-7-oracle
export DERBY_HOME=/usr/lib/jvm/java-7-oracle/db

РЕДАКТИРОВАТЬ 3

Я переключился на openjdk 7, отредактировал jdk.sh, чтобы отразить это export JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk-amd64, и ошибка пошла. Я запускаю другие известные проблемы (проблемы с разрешениями на теги папки странные). Так что это не относится к самому maven, я думаю. Но это странно, что он отлично работает для openjdk...

Ответ 1

JAVA_HOME должен указывать на jre, а не jdk. Затем установите:

export JAVA_HOME=/usr/lib/jvm/java-8-oracle/jre

Ответ 2

Создание файла .mavenrc в моей домашней папке и добавление кода ниже разрешило проблему для меня. (Ubuntu 14.10, Maven 3.2.1)

export JAVA_HOME=/usr/lib/jvm/java-8-oracle

Ответ 3

Другое обходное решение:

export JAVACMD=$JAVA_HOME/bin/java

настройка/usr/lib/jvm/java ⇒/usr/java/jdk1.7.0_45 не работала для меня

Ответ 4

Я провожу довольно много времени, чтобы справиться с подобной ошибкой. Похоже, что диспетчер пакетов может создать беспорядок в установках Java. Путь к Java иногда жестко закодирован в файлах bash. Я нашел один в /etc/profile.d/jdk.sh. Он просто отменяет ваши настройки. Другое исправление/обходное решение для этого - обновить символическую ссылку, в моем случае это было /usr/lib/jvm/java ⇒ /usr/java/jdk1.7.0_45. Попробуйте искать текст java/bin во всех файлах bash.

Ответ 5

в привилегии суперпользователя на вашем терминале open

vi etc/environment

в открывшемся файле добавить путь JAVA_HOME

JAVA_HOME="/usr/lib/jvm/java-7-openjdk-i386/"

Надеюсь, вы установили JAVA_HOME проверьте, установлен ли ваш JAVA_HOME с помощью команды

echo $JAVA_HOME

Ответ 6

Я использовал OpenJDK как java по умолчанию, обновил JAVA_HOME в /etc/environment и все проблемы пошли. Спасибо за все ваши усилия, помогающие мне в этом.