TheTransitClock / transitime

TheTransitClock real-time transit information system
GNU General Public License v3.0
78 stars 30 forks source link

transiTime QuickStart | maven build failed #224

Closed dancesWithCycles closed 3 years ago

dancesWithCycles commented 3 years ago

Hi folks, I hope this finds you well. Thank you very much for providing this repository. I am wondering if you can please point me in the right direction to build the TransiTime QuickStart.

Expected functionality Running mvn install -DskipTests on the command line interface of my GNU/Linux Debian 10 should build transiTime.

Describe the bug The mvn build routine failed.

To Reproduce I checked out the default repository branch this way.

git clone https://github.com/TheTransitClock/transitime.git

I changed into the respective directory and called Maven this way.

cd transitime/transitclockQuickStart/
mvn install -DskipTests

I am using this Debian.

$ uname -a
Linux tpx200 4.19.0-11-amd64 #1 SMP Debian 4.19.146-1 (2020-09-17) x86_64 GNU/Linux

This is my Java version.

$ java --version
openjdk 11.0.9.1 2020-11-04
OpenJDK Runtime Environment (build 11.0.9.1+1-post-Debian-1deb10u2)
OpenJDK 64-Bit Server VM (build 11.0.9.1+1-post-Debian-1deb10u2, mixed mode, sharing)

This is my Maven version.

$ mvn --version
Apache Maven 3.6.0
Maven home: /usr/share/maven
Java version: 11.0.9.1, vendor: Debian, runtime: /usr/lib/jvm/java-11-openjdk-amd64
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "4.19.0-11-amd64", arch: "amd64", family: "unix"

This is the Maven output.

$ mvn install -DskipTests
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by com.google.inject.internal.cglib.core.$ReflectUtils$1 (file:/usr/share/maven/lib/guice.jar) to method java.lang.ClassLoader.defineClass(java.lang.String,byte[],int,int,java.security.ProtectionDomain)
WARNING: Please consider reporting this to the maintainers of com.google.inject.internal.cglib.core.$ReflectUtils$1
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
[INFO] Scanning for projects...
[INFO] 
[INFO] ---------------< TheTransitClock:transitclockQuickStart >---------------
[INFO] Building transitclockQuickStart 2.0.0-SNAPSHOT
[INFO] --------------------------------[ jar ]---------------------------------
[WARNING] The POM for TheTransitClock:transitclockCore:jar:2.0.0-SNAPSHOT is missing, no dependency information available
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  1.220 s
[INFO] Finished at: 2021-02-08T10:39:04-05:00
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal on project transitclockQuickStart: Could not resolve dependencies for project TheTransitClock:transitclockQuickStart:jar:2.0.0-SNAPSHOT: Could not find artifact TheTransitClock:transitclockCore:jar:2.0.0-SNAPSHOT -> [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/DependencyResolutionException

Does anyone can give me a little hint in what way I should look to find the issue? Cheers!

scrudden commented 3 years ago

Hi Stefan,

This closed issue #222 has the resolution.

Cheers, Sean.

dancesWithCycles commented 3 years ago

Hi Sean, here is the output running the routine from the root directory of the default repository. It looks different but not satisfying yet. Any idea?

 /transitime$ mvn install -DskipTests
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by com.google.inject.internal.cglib.core.$ReflectUtils$1 (file:/usr/share/maven/lib/guice.jar) to method java.lang.ClassLoader.defineClass(java.lang.String,byte[],int,int,java.security.ProtectionDomain)
WARNING: Please consider reporting this to the maintainers of com.google.inject.internal.cglib.core.$ReflectUtils$1
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
[INFO] Scanning for projects...
[WARNING] 
[WARNING] Some problems were encountered while building the effective model for TheTransitClock:transitclockCore:jar:2.0.0-SNAPSHOT
[WARNING] 'dependencies.dependency.(groupId:artifactId:type:classifier)' must be unique: com.github.haifengl:smile-core:jar -> duplicate declaration of version 1.5.1 @ line 284, column 15
[WARNING] 'build.plugins.plugin.version' for org.apache.maven.plugins:maven-shade-plugin is missing. @ line 310, column 12
[WARNING] 
[WARNING] It is highly recommended to fix these problems because they threaten the stability of your build.
[WARNING] 
[WARNING] For this reason, future Maven versions might no longer support building such malformed projects.
[WARNING] 
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Build Order:
[INFO] 
[INFO] transitclockBarefootClient                                         [jar]
[INFO] transitclockTraccarClient                                          [jar]
[INFO] transitclockCore                                                   [jar]
[INFO] transitclockApi                                                    [war]
[INFO] transitclockWebapp                                                 [war]
[INFO] transitclockQuickStart                                             [jar]
[INFO] transitclock                                                       [pom]
[INFO] 
[INFO] -------------< TheTransitClock:transitclockBarefootClient >-------------
[INFO] Building transitclockBarefootClient 2.0.0-SNAPSHOT                 [1/7]
[INFO] --------------------------------[ jar ]---------------------------------
Downloading from central: https://repo.maven.apache.org/maven2/org/zeromq/jeromq/0.3.5/jeromq-0.3.5.pom
Downloaded from central: https://repo.maven.apache.org/maven2/org/zeromq/jeromq/0.3.5/jeromq-0.3.5.pom (7.0 kB at 10 kB/s)
Downloading from central: https://repo.maven.apache.org/maven2/org/zeromq/jeromq/0.3.5/jeromq-0.3.5.jar
Downloaded from central: https://repo.maven.apache.org/maven2/org/zeromq/jeromq/0.3.5/jeromq-0.3.5.jar (239 kB at 758 kB/s)
[INFO] 
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ transitclockBarefootClient ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory /home/user/GitHub/transitime/transitclockBarefootClient/src/main/resources
[INFO] 
[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ transitclockBarefootClient ---
Downloading from central: https://repo.maven.apache.org/maven2/org/slf4j/slf4j-parent/1.5.6/slf4j-parent-1.5.6.pom
Downloaded from central: https://repo.maven.apache.org/maven2/org/slf4j/slf4j-parent/1.5.6/slf4j-parent-1.5.6.pom (0 B at 0 B/s)
Downloading from central: https://repo.maven.apache.org/maven2/org/slf4j/slf4j-api/1.5.6/slf4j-api-1.5.6.pom
Downloaded from central: https://repo.maven.apache.org/maven2/org/slf4j/slf4j-api/1.5.6/slf4j-api-1.5.6.pom (0 B at 0 B/s)
Downloading from central: https://repo.maven.apache.org/maven2/com/google/google/1/google-1.pom
Downloaded from central: https://repo.maven.apache.org/maven2/com/google/google/1/google-1.pom (0 B at 0 B/s)
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 1 source file to /home/user/GitHub/transitime/transitclockBarefootClient/target/classes
[INFO] -------------------------------------------------------------
[ERROR] COMPILATION ERROR : 
[INFO] -------------------------------------------------------------
[ERROR] Source option 5 is no longer supported. Use 6 or later.
[ERROR] Target option 1.5 is no longer supported. Use 1.6 or later.
[INFO] 2 errors 
[INFO] -------------------------------------------------------------
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary for transitclock 2.0.0-SNAPSHOT:
[INFO] 
[INFO] transitclockBarefootClient ......................... FAILURE [  3.759 s]
[INFO] transitclockTraccarClient .......................... SKIPPED
[INFO] transitclockCore ................................... SKIPPED
[INFO] transitclockApi .................................... SKIPPED
[INFO] transitclockWebapp ................................. SKIPPED
[INFO] transitclockQuickStart ............................. SKIPPED
[INFO] transitclock ....................................... SKIPPED
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  4.247 s
[INFO] Finished at: 2021-02-08T11:30:51-05:00
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:compile (default-compile) on project transitclockBarefootClient: Compilation failure: Compilation failure: 
[ERROR] Source option 5 is no longer supported. Use 6 or later.
[ERROR] Target option 1.5 is no longer supported. Use 1.6 or later.
[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
scrudden commented 3 years ago

Hi Stefan,

The travis build is working so makes me think it is something local to you.

https://travis-ci.org/github/TheTransitClock/transitime.

This "Source option 5 is no longer supported. Use 6 or later." would indicate it is something to do with the java version used. The travis config file should help select the version to use.

https://github.com/TheTransitClock/transitime/blob/develop/.travis.yml

Cheers, Sean.

dancesWithCycles commented 3 years ago

Hi Sean, I agree. It seems to be some local issue. Anyhow, I do not get the complain about source and target option. I do not know anything about Maven. My Debian GNU/Linux is running openJDK 11. I do not know how this is related to either version 1.5, 1.6 or 5, 6. I hope some investigation solves this confusion. Cheers, Stefan

scrudden commented 3 years ago

This has the reason for the issue.

http://openjdk.java.net/jeps/182

We can either revert to the older openjdk 8 or we can update the pom.xml files to ensure we are targeting a version supported by openjdk 11.

dancesWithCycles commented 3 years ago

Hi folks, I hope this finds you well! Today, I added openJDK 8 to my development system, using this Stack Overflow answer, to launch another maven build round. Sadly, it ended again without success. At the moment, I have both JDK's installed: 8 and 11. I do not really want to get rid of 11. Does anyone know if I have to? Do I have to change the Maven configuration in any way to fit my development system? How do you guys check this repository out, build and operate it?

Here is my current Maven output for the sake of completeness:

/GitHub/transitime$ mvn clean install -DskipTests=true
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by com.google.inject.internal.cglib.core.$ReflectUtils$1 (file:/usr/share/maven/lib/guice.jar) to method java.lang.ClassLoader.defineClass(java.lang.String,byte[],int,int,java.security.ProtectionDomain)
WARNING: Please consider reporting this to the maintainers of com.google.inject.internal.cglib.core.$ReflectUtils$1
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
[INFO] Scanning for projects...
[WARNING] 
[WARNING] Some problems were encountered while building the effective model for TheTransitClock:transitclockCore:jar:2.0.0-SNAPSHOT
[WARNING] 'dependencies.dependency.(groupId:artifactId:type:classifier)' must be unique: com.github.haifengl:smile-core:jar -> duplicate declaration of version 1.5.1 @ line 284, column 15
[WARNING] 'build.plugins.plugin.version' for org.apache.maven.plugins:maven-shade-plugin is missing. @ line 310, column 12
[WARNING] 
[WARNING] It is highly recommended to fix these problems because they threaten the stability of your build.
[WARNING] 
[WARNING] For this reason, future Maven versions might no longer support building such malformed projects.
[WARNING] 
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Build Order:
[INFO] 
[INFO] transitclockBarefootClient                                         [jar]
[INFO] transitclockTraccarClient                                          [jar]
[INFO] transitclockCore                                                   [jar]
[INFO] transitclockApi                                                    [war]
[INFO] transitclockWebapp                                                 [war]
[INFO] transitclockQuickStart                                             [jar]
[INFO] transitclock                                                       [pom]
[INFO] 
[INFO] -------------< TheTransitClock:transitclockBarefootClient >-------------
[INFO] Building transitclockBarefootClient 2.0.0-SNAPSHOT                 [1/7]
[INFO] --------------------------------[ jar ]---------------------------------
[INFO] 
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ transitclockBarefootClient ---
[INFO] Deleting /home/user/GitHub/transitime/transitclockBarefootClient/target
[INFO] 
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ transitclockBarefootClient ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory /home/user/GitHub/transitime/transitclockBarefootClient/src/main/resources
[INFO] 
[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ transitclockBarefootClient ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 1 source file to /home/user/GitHub/transitime/transitclockBarefootClient/target/classes
[INFO] -------------------------------------------------------------
[ERROR] COMPILATION ERROR : 
[INFO] -------------------------------------------------------------
[ERROR] Source option 5 is no longer supported. Use 6 or later.
[ERROR] Target option 1.5 is no longer supported. Use 1.6 or later.
[INFO] 2 errors 
[INFO] -------------------------------------------------------------
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary for transitclock 2.0.0-SNAPSHOT:
[INFO] 
[INFO] transitclockBarefootClient ......................... FAILURE [  2.084 s]
[INFO] transitclockTraccarClient .......................... SKIPPED
[INFO] transitclockCore ................................... SKIPPED
[INFO] transitclockApi .................................... SKIPPED
[INFO] transitclockWebapp ................................. SKIPPED
[INFO] transitclockQuickStart ............................. SKIPPED
[INFO] transitclock ....................................... SKIPPED
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  2.549 s
[INFO] Finished at: 2021-02-09T21:11:05-05:00
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:compile (default-compile) on project transitclockBarefootClient: Compilation failure: Compilation failure: 
[ERROR] Source option 5 is no longer supported. Use 6 or later.
[ERROR] Target option 1.5 is no longer supported. Use 1.6 or later.
[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

One thing I do not get about this Maven error: There is no source option 1.5 or target option 5 in my pom.xml files. Where does Maven get those numbers? Is Maven also using anything a part from the pom.xml files?

Cheers, Stefan

scrudden commented 3 years ago

Hi Stefan,

You will need to set the default java for the system to use. This link has some details.

https://mkyong.com/linux/debian-change-default-java-version/

Hope this helps.

Cheers,

Sean.

dancesWithCycles commented 3 years ago

Hi Sean, thank you so much for your support. Here now follows the summary of what I did to build this project on Debian GNU/Linux 10. The first builds failed due to my existing java version. Currently, the project can not be build with openJDK 11 with the configuration as is in the repository. That is why I installed openJDK 8 and switched the java version that Debian is using the following way.

Install openJDK 8:

sudo apt update
sudo apt install apt-transport-https ca-certificates wget dirmngr gnupg software-properties-common
wget -qO - https://adoptopenjdk.jfrog.io/adoptopenjdk/api/gpg/key/public | sudo apt-key add -
sudo add-apt-repository --yes https://adoptopenjdk.jfrog.io/adoptopenjdk/deb/
sudo apt update
sudo apt install adoptopenjdk-8-hotspot
java -version

An example explanation can be found in this article.

Next I configured Debian to use openJDK 8:

sudo update-alternatives --config java
java -version

Next I checked out the repository and build the project:

git clone https://github.com/TheTransitClock/transitime.git
cd transitime/
mvn install -DskipTests

Here is the respective output:

[INFO] 
[INFO] --- maven-install-plugin:2.4:install (default-install) @ transitclockQuickStart ---
[INFO] Installing /home/user/GitHub/transitime/transitclockQuickStart/target/transitclockQuickStart-2.0.0-SNAPSHOT.jar to /home/user/.m2/repository/TheTransitClock/transitclockQuickStart/2.0.0-SNAPSHOT/transitclockQuickStart-2.0.0-SNAPSHOT.jar
[INFO] Installing /home/user/GitHub/transitime/transitclockQuickStart/pom.xml to /home/user/.m2/repository/TheTransitClock/transitclockQuickStart/2.0.0-SNAPSHOT/transitclockQuickStart-2.0.0-SNAPSHOT.pom
[INFO] 
[INFO] --------------------< TheTransitClock:transitclock >--------------------
[INFO] Building transitclock 2.0.0-SNAPSHOT                               [7/7]
[INFO] --------------------------------[ pom ]---------------------------------
[INFO] 
[INFO] --- maven-install-plugin:2.4:install (default-install) @ transitclock ---
[INFO] Installing /home/user/GitHub/transitime/pom.xml to /home/user/.m2/repository/TheTransitClock/transitclock/2.0.0-SNAPSHOT/transitclock-2.0.0-SNAPSHOT.pom
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary for transitclock 2.0.0-SNAPSHOT:
[INFO] 
[INFO] transitclockBarefootClient ......................... SUCCESS [  3.176 s]
[INFO] transitclockTraccarClient .......................... SUCCESS [  9.883 s]
[INFO] transitclockCore ................................... SUCCESS [01:33 min]
[INFO] transitclockApi .................................... SUCCESS [  7.541 s]
[INFO] transitclockWebapp ................................. SUCCESS [  5.699 s]
[INFO] transitclockQuickStart ............................. SUCCESS [ 28.074 s]
[INFO] transitclock ....................................... SUCCESS [  0.009 s]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  02:27 min
[INFO] Finished at: 2021-02-10T09:15:27-05:00
[INFO] ------------------------------------------------------------------------

Cheers!