adoroszlai opened a new pull request, #8183:
URL: https://github.com/apache/ozone/pull/8183
## What changes were proposed in this pull request?
Fix build error that happens in `hdds-rocks-native` if `JAVA_HOME` is not
set.
```
Failed to execute goal org.codehaus.mojo:native-maven-plugin:1.0-M1:javah
(default) on project hdds-rocks-native: Error running javah command
...
Caused by: IOException: Cannot run program "${env.JAVA_HOME}/bin/javah" (in
directory "hadoop-hdds/rocks-native"): error=2, No such file or directory
```
Also, fix the root cause of HDDS-10118 and HDDS-11054:
```
Failed to execute goal
org.apache.maven.plugins:maven-dependency-plugin:3.0.2:copy-dependencies
(copy-jars) on project hdds-rocks-native: Artifact has not been packaged yet.
When used on reactor artifact, copy should be executed after packaging: see
MDEP-187.
```
(HDDS-10118 was repurposed for another bug, HDDS-11054 only provided a
workaround for the original bug.)
Both of these issues are fixed by using `maven-compiler-plugin` instead of
`maven-dependency-plugin:copy-dependencies` and `exec-maven-plugin` (for Java
11+) or `native-maven-plugin` (for Java 8).
https://issues.apache.org/jira/browse/HDDS-12724
## How was this patch tested?
```
$ unset JAVA_HOME
```
Tested with Java 8:
```
$ export PATH=/usr/lib/jvm/java-8-openjdk-amd64/bin:$PATH
$ mvn -V -am -pl :hdds-rocks-native -Drocks_tools_native
-Dtest='TestManagedRawSSTFileIterator,TestNativeLibraryLoader' clean test
...
Java version: 1.8.0_442, vendor: Private Build, runtime:
/usr/lib/jvm/java-8-openjdk-amd64/jre
...
[INFO] [exec] [100%] Built target ozone_rocksdb_tools
...
[INFO] Tests run: 3, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.694
s -- in org.apache.hadoop.hdds.utils.TestNativeLibraryLoader
[INFO] Tests run: 6, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.644
s -- in org.apache.hadoop.hdds.utils.db.managed.TestManagedRawSSTFileIterator
...
[INFO] BUILD SUCCESS
```
Java 11:
```
$ export PATH=/usr/lib/jvm/java-11-openjdk-amd64/bin:$PATH
$ mvn -V -am -pl :hdds-rocks-native -Drocks_tools_native
-Dtest='TestManagedRawSSTFileIterator,TestNativeLibraryLoader' clean test
...
Java version: 11.0.26, vendor: Ubuntu, runtime:
/usr/lib/jvm/java-11-openjdk-amd64
...
[INFO] [exec] [100%] Built target ozone_rocksdb_tools
...
[INFO] Tests run: 3, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.711
s -- in org.apache.hadoop.hdds.utils.TestNativeLibraryLoader
[INFO] Tests run: 6, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.556
s -- in org.apache.hadoop.hdds.utils.db.managed.TestManagedRawSSTFileIterator
...
[INFO] BUILD SUCCESS
```
Java 17:
```
$ export PATH=/usr/lib/jvm/java-17-openjdk-amd64/bin:$PATH
$ mvn -V -am -pl :hdds-rocks-native -Drocks_tools_native
-Dtest='TestManagedRawSSTFileIterator,TestNativeLibraryLoader' clean test
...
Java version: 17.0.14, vendor: Ubuntu, runtime:
/usr/lib/jvm/java-17-openjdk-amd64
...
[INFO] [exec] [100%] Built target ozone_rocksdb_tools
...
[INFO] Tests run: 3, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.664
s -- in org.apache.hadoop.hdds.utils.TestNativeLibraryLoader
[INFO] Tests run: 6, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.518
s -- in org.apache.hadoop.hdds.utils.db.managed.TestManagedRawSSTFileIterator
...
[INFO] BUILD SUCCESS
```
Java 21:
```
$ export PATH=/usr/lib/jvm/java-21-openjdk-amd64/bin:$PATH
$ mvn -V -am -pl :hdds-rocks-native -Drocks_tools_native
-Dtest='TestManagedRawSSTFileIterator,TestNativeLibraryLoader' clean test
...
Java version: 21.0.6, vendor: Ubuntu, runtime:
/usr/lib/jvm/java-21-openjdk-amd64
...
[INFO] [exec] [100%] Built target ozone_rocksdb_tools
...
[INFO] Tests run: 3, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.644
s -- in org.apache.hadoop.hdds.utils.TestNativeLibraryLoader
[INFO] Tests run: 6, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.444
s -- in org.apache.hadoop.hdds.utils.db.managed.TestManagedRawSSTFileIterator
...
[INFO] BUILD SUCCESS
```
_native_ check:
https://github.com/adoroszlai/ozone/actions/runs/14132096809/job/39595380304
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]