Почему сбой компиляции maven?

#java #maven #jodatime

#java #maven #jodatime

Вопрос:

Я пытаюсь создать java-проект с помощью maven. Я проверяю команду maven mvn -v , и она выдает следующий вывод

 Apache Maven 3.3.9 (bb52d8502b132ec0a5a3f4c09453c07478323dc5; 2015-11-10T18:41:47 02:00)
Maven home: C:Program FilesApacheMavenapache-maven-3.3.9bin..
Java version: 1.8.0_101, vendor: Oracle Corporation
Java home: C:Program FilesJavajdk1.8.0_101jre
Default locale: en_US, platform encoding: Cp1252
OS name: "windows 10", version: "10.0", arch: "amd64", family: "dos"
  

Я добавляю org.joda.time.LocalTime к HelloWorld.java следующему

 package hello;

import org.joda.time.LocalTime;

public class HelloWorld {
    public static void main(String[] args) {
        LocalTime currentTime = new LocalTime();
        System.out.println("The current local time is: "   currentTime);
        Greeter greeter = new Greeter();
        System.out.println(greeter.sayHello());
    }
}
  

Поэтому я добавляю joda-time зависимость к своему pom.xml . Вот мой pom.xml

 <?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/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>org.springframework</groupId>
    <artifactId>gs-maven</artifactId>
    <packaging>jar</packaging>
    <version>0.1.0</version>

    <dependencies>
        <!-- tag::joda[] -->
        <dependency>
            <groupId>joda-time</groupId>
            <artifactId>joda-time</artifactId>
            <version>2.2</version>
        </dependency>
        <!-- end::joda[] -->
        <!-- tag::junit[] -->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
            <scope>test</scope>
        </dependency>
        <!-- end::junit[] -->
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-shade-plugin</artifactId>
                <version>2.1</version>
                <executions>
                    <execution>
                        <phase>package</phase>
                        <goals>
                            <goal>shade</goal>
                        </goals>
                        <configuration>
                            <transformers>
                                <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
                                    <mainClass>hello.HelloWorld</mainClass>
                                </transformer>
                            </transformers>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

</project>
  

Всякий раз, когда я собираюсь запустить mvn compile , он выдает результат как

 [INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building gs-maven 0.1.0
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ gs-maven ---
[WARNING] Using platform encoding (Cp1252 actually) to copy filtered resources, i.e. build is platform dependent!
[INFO] skip non existing resourceDirectory H:ProjectsJAVAwebunzippedgs-maveninitialsrcmainresources
[INFO]
[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ gs-maven ---
[INFO] Changes detected - recompiling the module!
[WARNING] File encoding has not been set, using platform encoding Cp1252, i.e. build is platform dependent!
[INFO] Compiling 2 source files to H:ProjectsJAVAwebunzippedgs-maveninitialtargetclasses
[INFO] -------------------------------------------------------------
[ERROR] COMPILATION ERROR :
[INFO] -------------------------------------------------------------
[ERROR] /H:/Projects/JAVA/web/unzipped/gs-maven/initial/src/main/java/hello/HelloWorld.java:[3,21] package org.joda.time does not exist
[ERROR] /H:/Projects/JAVA/web/unzipped/gs-maven/initial/src/main/java/hello/HelloWorld.java:[7,9] cannot find symbol
  symbol:   class LocalTime
  location: class hello.HelloWorld
[ERROR] /H:/Projects/JAVA/web/unzipped/gs-maven/initial/src/main/java/hello/HelloWorld.java:[7,37] cannot find symbol
  symbol:   class LocalTime
  location: class hello.HelloWorld
[INFO] 3 errors
[INFO] -------------------------------------------------------------
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 2.647 s
[INFO] Finished at: 2016-10-03T09:11:07 03:00
[INFO] Final Memory: 14M/114M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:compile (default-compile) on project gs-maven: Compilation failure: Compilation failure:
[ERROR] /H:/Projects/JAVA/web/unzipped/gs-maven/initial/src/main/java/hello/HelloWorld.java:[3,21] package org.joda.time does not exist
[ERROR] /H:/Projects/JAVA/web/unzipped/gs-maven/initial/src/main/java/hello/HelloWorld.java:[7,9] cannot find symbol
[ERROR] symbol:   class LocalTime
[ERROR] location: class hello.HelloWorld
[ERROR] /H:/Projects/JAVA/web/unzipped/gs-maven/initial/src/main/java/hello/HelloWorld.java:[7,37] cannot find symbol
[ERROR] symbol:   class LocalTime
[ERROR] location: class hello.HelloWorld
[ERROR] -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException
  

Пожалуйста, позвольте мне сообщить, что я делаю неправильно.

Примечание: я просто слежу за созданием Java-проектов с помощью Maven tutorial в качестве новичка.

Комментарии:

1. проверьте, была ли загружена зависимость в вашем локальном репозитории m2 в папке users .. убедитесь, что вы подключены к Интернету

2. Используете ли вы для этого m2eclipse

3. С моей стороны это не дает никаких исключений. Я просто скопировал файлы и попробовал mvn compile

Ответ №1:

Ваш Maven считывает версию Java как 1.8.0_101, где в качестве pom.xml не обновляется

1) Попробуйте установить требуемую версию. Есть JAVA_HOME и pom.xml обновлен до того же пути установки jdk

2) mvn clean install — Что это делает, так это очищает все скомпилированные файлы, которые у вас есть, убедившись, что вы действительно компилируете каждый модуль с нуля.