Hi Jeffery,
I am using the same maven version, but Java 20 and occasionally Java 11, but on
Windows.
Updating surefire plugin seems to be ok, I will check in a new Turbine parent
POM soon with this version (though archetype could not use it).
The old surefire plugin seems to concatenate the path with the current
directory, which is of course wrong, but the compiler plugin should work
though.
Why it complains ${JAVA_HOME}/bin/javac did not work - there might be an issue
with this.. What do you get with $JAVA_HOME/bin/javac -version
You might also update the Apache parent version to 31 (from 29) to use the
newest release here ..
I did work some time ago with Turbine archetype project and have a local
branch, which uses mariadb driver instead of mysql (hosted db and docker),
which seems to work in my dev environment.
Not yet checked in .. but first steps are the same as you did 😉
Tomcat 10 + use Servlet Spec 6, which might be too big a leap 😊
Best regards,
Georg
-----Ursprüngliche Nachricht-----
Von: Jeffery Painter <[email protected]>
Gesendet: Dienstag, 23. April 2024 15:28
An: [email protected]
Betreff: Updating Turbine archetype
Hi Turbine devs,
I have a couple down cycles and I have been looking at using the latest Turbine
6.0 release. I was working to update the archetype to generate a new project
and I have run into a couple issues maybe you can give some insight. I still
use Eclipse as my IDE, so these may be specific issues I am seeing there.
Note, if I run mvn install in a new project from the CLI everything seems OK,
but getting Eclipse -> Maven install to work was throwing some errors.
Setup:
Environment: Ubuntu 22.0, Eclipse 2024-03, maven 3.9.6, JDK 17.0.10
(LTS) from Oracle
mvn --version
Apache Maven 3.9.6 (bc0240f3c744dd6b6ec2920b3cd08dcc295161ae)
Maven home: /usr/java/maven
Java version: 17.0.10, vendor: Oracle Corporation, runtime:
/usr/java/jdk-17.0.10
Default locale: en_US, platform encoding: UTF-8 OS name: "linux", version:
"6.5.0-27-generic", arch: "amd64", family: "unix"
Minor changes to the archetype in progress:
+++ b/src/main/resources/archetype-resources/pom.xml
<driverClassName>${turbine_database_driver}</driverClassName>
-Â Â Â Â Â Â Â <fulcrum.json>2.0.2-SNAPSHOT</fulcrum.json>
- <fulcrum.intake>3.0.1-SNAPSHOT</fulcrum.intake>
- <fulcrum.security>2.1.1-SNAPSHOT</fulcrum.security>
-Â Â Â Â Â Â Â <fulcrum.yaafi>2.0.1-SNAPSHOT</fulcrum.yaafi>
+Â Â Â Â Â Â Â <fulcrum.intake>3.0.0</fulcrum.intake>
+Â Â Â Â Â Â Â <fulcrum.parser>3.0.0</fulcrum.parser>
+Â Â Â Â Â Â Â <fulcrum.security>3.0.0</fulcrum.security>
+Â Â Â Â Â Â Â <fulcrum.yaafi>2.0.0</fulcrum.yaafi>
+Â Â Â Â Â Â Â <fulcrum.json>2.0.1</fulcrum.json>
        <fulcrum.cache>2.0.0</fulcrum.cache>
<fulcrum.testcontainer>2.0.0</fulcrum.testcontainer>
-Â Â Â Â Â Â Â <torque.version>5.2-SNAPSHOT</torque.version>
-Â Â Â Â Â Â Â <turbine.core>5.2-SNAPSHOT</turbine.core>
+Â Â Â Â Â Â Â <torque.version>5.1</torque.version>
+Â Â Â Â Â Â Â <turbine.core>6.0</turbine.core>
        <skipTests>true</skipTests>
        <docker>false</docker>
<turbine_database_url>${turbine_database_url}</turbine_database_url>
painter@merlin:~/apache/t/turbine-archetypes$ git diff
src/main/resources/META-INF/maven/archetype-metadata.xml
diff --git a/src/main/resources/META-INF/maven/archetype-metadata.xml
b/src/main/resources/META-INF/maven/archetype-metadata.xml
index 0158c60..9809418 100644
--- a/src/main/resources/META-INF/maven/archetype-metadata.xml
+++ b/src/main/resources/META-INF/maven/archetype-metadata.xml
@@ -21,7 +21,7 @@
xmlns="http://maven.apache.org/plugins/maven-archetype-plugin/archetype-descriptor/1.0.0"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/plugins/maven-archetype-plugin/archetype-descriptor/1.0.0
http://maven.apache.org/xsd/archetype-descriptor-1.0.0.xsd"
-Â name="turbine-5.1-webapp">
+Â name="turbine-6.0-webapp">
  <requiredProperties>
    <requiredProperty key="turbine_app_name">
I can install the archetype locally, build a sample app from CLI and no
issues. I try to import the new app into Eclipse, run maven install and
get 2 errors.
The first is it complains is on the maven compiler plugin:
[[1;34mINFO[m]
[1m------------------------------------------------------------------------[m
[[1;31mERROR[m] Failed to execute goal
[32morg.apache.maven.plugins:maven-compiler-plugin:3.10.1:compile[m[1m(default-compile)[mon
project [36mfirstapp[m: [1;31mFatal error compiling[m: Error while
executing the external compiler. Error while executing process. Cannot
run program "${JAVA_HOME}/bin/javac" (in directory
"/home/painter/workspace/firstapp"): error=2, No such file or directory
-> [1m[Help 1][m
[[1;31mERROR[m]
I can overcome this error if I explicitly point to the JDK install by
making the following change to the pom.xml
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>${maven.compile.source}</source>
<target>${maven.compile.target}</target>
<encoding>${project.build.sourceEncoding}</encoding>
<fork>true</fork>
<executable>/usr/java/jdk/bin/javac</executable>
</configuration>
</plugin>
The second error I get is then related to the surefire plugin:
[[1;31mERROR[m] Failed to execute goal
[32morg.apache.maven.plugins:maven-surefire-plugin:3.0.0-M5:test[m[1m(default-test)[mon
project [36mfirstapp[m: [1;31mGiven path to java executor does not
exist "/home/painter/workspace/firstapp/${JAVA_HOME}/bin/java".[m->
[1m[Help 1][m
I can overcome this error if I explicitly update the pom.xml to use
version 3.2.5
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>3.2.5</version>
<configuration>
<skipTests>${skipTests}</skipTests>
<reuseForks>false</reuseForks>
<forkCount>1</forkCount>
</configuration>
</plugin>
Then everything will build fine. Also, I see if I have Tomcat 9.0.x
configured as my server it will launch from Eclipse OK, but it fails
with Tomcat 10 or 11. Is this expected?
Any ideas on why it works from CLI mvn and not the Eclipse mvn
environment? I think specifiying the surefire version is an easy change
to make, but I am less certain on setting the default JDK in the pom
file (maybe we could pick this up in the archetype somehow?)
Happy to hear your thoughts!
-
Jeff