Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 7 additions & 1 deletion BUILDING.txt
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,13 @@ Refer to dev-support/docker/Dockerfile_ubuntu_20):
$ sudo apt-get update
$ sudo apt-get -y install openjdk-17-jdk
* Maven
$ sudo apt-get -y install maven
Most package managers do not as of January 2026 install an up to date version of Maven.
Install an up-to-date version of Maven manually, or use mvnw command, which will download one and validate it before execution.

Following commands can be used to download and install required version of Maven manually if mvnw is not used:
$ curl -L https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.9.11/apache-maven-3.9.11-bin.tar.gz > apache-maven-3.9.11-bin.tar.gz
$ tar -zxvf apache-maven-3.9.11-bin.tar.gz -C /opt
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

add a checksum/signature validation stage if we are putting in code for people to run, or at least recommend it.

curl -L https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.9.11/apache-maven-3.9.11-bin.tar.gz.asc > apache-maven-3.9.11-bin.tar.gz.asc
curl -L https://downloads.apache.org/maven/KEYS > KEYS
gpg --import KEYS
gpg --verify apache-maven-3.9.11-bin.tar.gz.asc

Copy link
Member

@pan3793 pan3793 Jan 30, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@steveloughran, if you look at the context, no installation does such verification. can we make the guide simple to match the context for now?

later we can consider Maven Wrapper https://maven.apache.org/tools/wrapper/, then ./mvnw would automatically trigger the requested version of Maven downloading, which is a much simpler way. (my previous try was abandoned because I didn't figure out how to let Yetus invoke ./mvnw instead of mvn under $PATH, but it's simple if we keep mvn for Yetus and add a ./mvnw as an alternative for developers)

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ok, if mvnw is listed as the install mechanism, it's a lot simpler to detail as it does the validation. Docs can just say "use an up to date version of maven; the mvnw command will download one and validate it before execution"

$ sudo ln -s /opt/apache-maven-3.9.11/bin/mvn /usr/bin
* Native libraries
$ sudo apt-get -y install build-essential autoconf automake libtool cmake zlib1g-dev pkg-config libssl-dev libsasl2-dev
* GCC 9.3.0
Expand Down
2 changes: 1 addition & 1 deletion dev-support/win-paths-eg.cmd
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ SET MAVEN_OPTS=-Dmaven.repo.local=C:\Tools\m2
@REM command path
@REM

SET MAVEN_HOME=C:\Tools\apache-maven-3.5.0
SET MAVEN_HOME=C:\Tools\apache-maven-3.9.11
SET JAVA_HOME=C:\Tools\jdk
SET MSVS=C:\Program Files (x86)\Microsoft Visual Studio 12.0
SET PROTO_BIN=C:\Tools\protobuf-2.5.0
Expand Down
2 changes: 1 addition & 1 deletion pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -147,7 +147,7 @@ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/x
for an open-ended enforcement
-->
<enforced.java.version>[${javac.version},)</enforced.java.version>
<enforced.maven.version>[3.3.0,)</enforced.maven.version>
<enforced.maven.version>[3.9.11,)</enforced.maven.version>
</properties>

<modules>
Expand Down