diff --git a/.gitattributes b/.gitattributes
index 3bb3b5ea8a4d..150d31a7f0f4 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -6,3 +6,5 @@
*.css text
*.js text
*.sql text
+*.jar binary
+*.war binary
diff --git a/.github/workflows/maven.yml b/.github/workflows/maven.yml
index 10958257e231..15de9cda997a 100644
--- a/.github/workflows/maven.yml
+++ b/.github/workflows/maven.yml
@@ -17,128 +17,170 @@
name: Java CI
-on: [push, pull_request, workflow_dispatch]
+on:
+ push:
+ branches: [ master ]
+ pull_request:
+ branches: [ master ]
# clear all permissions for GITHUB_TOKEN
permissions: {}
jobs:
- build:
-
- # execute on any push, workflow_dispatch or pull request from forked repo
- if: >
- github.event_name == 'push' ||
- github.event_name == 'workflow_dispatch' ||
- ( github.event_name == 'pull_request' && github.event.pull_request.head.repo.fork )
-
- strategy:
- matrix:
- os: [ubuntu-latest, windows-latest, macOS-latest]
- fail-fast: false
-
- runs-on: ${{ matrix.os }}
-
+ initial-build:
+ runs-on: ubuntu-latest
steps:
- - uses: actions/checkout@v4
+ - name: Set up JDK
+ uses: actions/setup-java@v4
+ with:
+ java-version: 17
+ distribution: 'temurin'
+
+ - name: Checkout maven
+ uses: actions/checkout@v4
with:
persist-credentials: false
- - uses: actions/setup-java@v4
+ - name: Cache Maven packages
+ uses: actions/cache@v4
with:
- java-version: 17
- distribution: 'temurin'
- cache: 'maven'
+ path: ~/.m2/repository/cached
+ key: maven-${{ hashFiles('**/pom.xml') }}
+ restore-keys: maven-
+ enableCrossOsArchive: true
- name: Set up Maven
- run:
- mvn --errors --batch-mode --show-version org.apache.maven.plugins:maven-wrapper-plugin:3.3.2:wrapper "-Dmaven=3.9.7"
+ shell: bash
+ run: mvn --errors --batch-mode --show-version org.apache.maven.plugins:maven-wrapper-plugin:3.3.2:wrapper "-Dmaven=4.0.0-beta-4"
- - name: Build with Maven
+ - name: Build Maven distributions
+ shell: bash
run: ./mvnw verify -e -B -V -DdistributionFileName=apache-maven
- - name: Upload built Maven
+ - name: List contents of target directory
+ shell: bash
+ run: ls -la apache-maven/target
+
+ - name: Upload Maven distributions
uses: actions/upload-artifact@v4
- if: ${{ matrix.os == 'ubuntu-latest' }}
with:
- name: built-maven
- path: apache-maven/target/
+ name: maven-distributions
+ path: |
+ apache-maven/target/apache-maven*.zip
+ apache-maven/target/apache-maven*.tar.gz
- integration-test:
- needs: build
+ full-build:
+ needs: initial-build
+ runs-on: ${{ matrix.os }}
strategy:
+ fail-fast: false
matrix:
- os: [ubuntu-latest, windows-latest, macOS-latest]
- java: [17, 21]
+ os: [ubuntu-latest, macos-latest, windows-latest]
+ java: ['17', '21']
+ steps:
+ - name: Set up JDK ${{ matrix.java }}
+ uses: actions/setup-java@v4
+ with:
+ java-version: ${{ matrix.java }}
+ distribution: 'temurin'
- fail-fast: false
- runs-on: ${{ matrix.os }}
+ - name: Install Graphviz (MacOS)
+ if: runner.os == 'macOS'
+ run: brew install graphviz
- steps:
- - name: Collect environment context variables
+ - name: Install Graphviz (Ubuntu)
+ if: runner.os == 'Linux'
+ run: sudo apt-get install graphviz
+
+ - name: Install Graphviz (Windows)
+ if: runner.os == 'Windows'
+ run: choco install graphviz
+
+ - name: Checkout maven
+ uses: actions/checkout@v4
+ with:
+ persist-credentials: false
+
+ - name: Download Maven distribution
+ uses: actions/download-artifact@v4
+ with:
+ name: maven-distributions
+ path: maven-dist
+
+ - name: List downloaded files
+ shell: bash
+ run: ls -la maven-dist
+
+ - name: Extract Maven distribution
shell: bash
- env:
- PR_HEAD_LABEL: ${{ github.event.pull_request.head.label }}
run: |
- set +e
- repo=maven-integration-testing
- target_branch=master
- target_user=apache
- if [ "$GITHUB_EVENT_NAME" == "pull_request" ]; then
- user=${PR_HEAD_LABEL%:*}
- branch=${PR_HEAD_LABEL#*:}
- else
- user=${GITHUB_REPOSITORY%/*}
- branch=${GITHUB_REF#refs/heads/}
- fi
- if [ $branch != "master" ]; then
- git ls-remote https://github.com/$user/$repo.git | grep "refs/heads/${branch}$" > /dev/null
- if [ $? -eq 0 ]; then
- echo "Found a branch \"$branch\" in fork \"$user/$repo\", configuring this for the integration tests to be run against."
- target_branch=$branch
- target_user=$user
- else
- echo "Could not find fork \"$user/$repo\" or a branch \"$branch\" in this fork. Falling back to \"$target_branch\" in \"$target_user/$repo\"."
- fi
+ mkdir -p maven-local
+ if [ "${{ runner.os }}" = "Windows" ]; then
+ unzip maven-dist/apache-maven-bin.zip -d maven-local
else
- echo "Integration tests will run against $target_user/$repo for master builds."
+ tar xzf maven-dist/apache-maven-bin.tar.gz -C maven-local --strip-components 1
fi
- echo "REPO_BRANCH=$target_branch" >> $GITHUB_ENV
- echo "REPO_USER=$target_user" >> $GITHUB_ENV
+ echo "MAVEN_HOME=$PWD/maven-local" >> $GITHUB_ENV
+ echo "$PWD/maven-local/bin" >> $GITHUB_PATH
- - name: Checkout maven-integration-testing
- uses: actions/checkout@v4
- with:
- repository: ${{ env.REPO_USER }}/maven-integration-testing
- path: maven-integration-testing/
- ref: ${{ env.REPO_BRANCH }}
- persist-credentials: false
+ - name: Build site with downloaded Maven
+ shell: bash
+ run: mvn verify site -e -B -V -DdistributionFileName=apache-maven -Preporting
- - name: Set up JDK
+ integration-tests:
+ needs: initial-build
+ runs-on: ${{ matrix.os }}
+ strategy:
+ fail-fast: false
+ matrix:
+ os: [ubuntu-latest, macos-latest, windows-latest]
+ java: ['17', '21']
+ steps:
+ - name: Set up JDK ${{ matrix.java }}
uses: actions/setup-java@v4
with:
java-version: ${{ matrix.java }}
distribution: 'temurin'
-# cache: 'maven' - don't use cache for integration tests
- - uses: actions/checkout@v4
+ - name: Checkout maven
+ uses: actions/checkout@v4
with:
- path: maven/
persist-credentials: false
- - name: Set up Maven
- run:
- mvn --errors --batch-mode --show-version org.apache.maven.plugins:maven-wrapper-plugin:3.3.2:wrapper "-Dmaven=3.9.7"
+ - name: Download Maven distribution
+ uses: actions/download-artifact@v4
+ with:
+ name: maven-distributions
+ path: maven-dist
+
+ - name: List downloaded files
+ shell: bash
+ run: ls -la maven-dist
- - name: Build Maven
- run: ./mvnw install -e -B -V -DdistributionFileName=apache-maven -DskipTests -f maven/pom.xml
+ - name: Extract Maven distribution
+ shell: bash
+ run: |
+ mkdir -p maven-local
+ if [ "${{ runner.os }}" = "Windows" ]; then
+ unzip maven-dist/apache-maven-bin.zip -d maven-local
+ # Get the name of the extracted directory
+ MAVEN_DIR=$(ls maven-local)
+ # Move contents up one level
+ mv "maven-local/$MAVEN_DIR"/* maven-local/
+ rm -r "maven-local/$MAVEN_DIR"
+ else
+ tar xzf maven-dist/apache-maven-bin.tar.gz -C maven-local --strip-components 1
+ fi
+ echo "MAVEN_HOME=$PWD/maven-local" >> $GITHUB_ENV
+ echo "$PWD/maven-local/bin" >> $GITHUB_PATH
- - name: Running integration tests
+ - name: Run integration tests
shell: bash
- run: ./mvnw install -e -B -V -Prun-its,embedded -DmavenDistro="$GITHUB_WORKSPACE/maven/apache-maven/target/apache-maven-bin.zip" -f maven-integration-testing/pom.xml
+ run: mvn install -e -B -V -Prun-its,embedded
- - name: Upload artifact on integration testing
+ - name: Upload test artifacts
uses: actions/upload-artifact@v4
- if: failure() && matrix.os != 'windows-latest'
+ if: failure()
with:
- name: ${{ github.run_number }}-integration-test-artifact-${{ matrix.os }}-${{ matrix.java }}
- path: ./maven-integration-testing/core-it-suite/target/test-classes/
+ name: ${{ github.run_number }}-integration-test-artifact-${{ runner.os }}-${{ matrix.java }}
+ path: ./its/core-it-suite/target/test-classes/
\ No newline at end of file
diff --git a/.github/workflows/maven_build_itself.yml b/.github/workflows/maven_build_itself.yml
deleted file mode 100644
index 0c3fb4c49a87..000000000000
--- a/.github/workflows/maven_build_itself.yml
+++ /dev/null
@@ -1,87 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements. See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership. The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License. You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied. See the License for the
-# specific language governing permissions and limitations
-# under the License.
-
-name: Can Maven build itself
-
-on: [push, pull_request]
-
-# clear all permissions for GITHUB_TOKEN
-permissions: {}
-
-jobs:
- build:
-
- # execute on any push or pull request from forked repo
- if: github.event_name == 'push' || ( github.event_name == 'pull_request' && github.event.pull_request.head.repo.fork )
-
- strategy:
- matrix:
- os: [ubuntu-latest, windows-latest]
- java: [17, 21]
- fail-fast: false
-
- runs-on: ${{ matrix.os }}
-
- steps:
- - uses: actions/checkout@v4
- with:
- persist-credentials: false
-
- - uses: actions/setup-java@v4
- with:
- java-version: ${{ matrix.java }}
- distribution: 'temurin'
- cache: 'maven'
-
- - name: Set up Maven
- run:
- mvn --errors --batch-mode --show-version org.apache.maven.plugins:maven-wrapper-plugin:3.3.2:wrapper "-Dmaven=3.9.7"
-
- - name: Build with Maven
- run: ./mvnw install -e -B -V -DdistributionFileName=apache-maven
-
- - name: Extract tarball
- shell: bash
- run: |
- set +e
- if [ -f ${{ env.TAR_BALL }} ]; then
- temp_dir=$(mktemp -d)
- tar -xzf ${{ env.TAR_BALL }} -C "$temp_dir" --strip 1
- maven_bin_dir=$temp_dir/bin
- if [ -d $maven_bin_dir ]; then
- echo "tar.gz file \"${{ env.TAR_BALL }}\" successfully extracted in temporarily directory \"$temp_dir.\""
- echo "TEMP_MAVEN_BIN_DIR=$maven_bin_dir" >> $GITHUB_ENV
- else
- echo "$maven_bin_dir does not exist."
- exit 1;
- fi
- else
- echo "${{ env.TAR_BALL }} does not exist."
- exit 1;
- fi
- env:
- TAR_BALL: apache-maven/target/apache-maven-bin.tar.gz
-
- - name: Clean with Maven
- run: ./mvnw -e -B -V clean
-
- - name: Build again with Maven SNAPSHOT
- shell: bash
- run: |
- set +e
- export PATH=${{ env.TEMP_MAVEN_BIN_DIR }}:$PATH
- mvn verify site -e -B -V -DdistributionFileName=apache-maven -Preporting
diff --git a/apache-maven/pom.xml b/apache-maven/pom.xml
index 4e98bf59cee6..d948851f722d 100644
--- a/apache-maven/pom.xml
+++ b/apache-maven/pom.xml
@@ -353,6 +353,34 @@ under the License.
+
+ run-its
+
+
+
+ maven-assembly-plugin
+
+
+ create-distribution-dir
+
+ single
+
+ package
+
+ ./
+ false
+ false
+ ${basedir}/target/maven
+
+ src/assembly/dir.xml
+
+
+
+
+
+
+
+
apache-release
diff --git a/apache-maven/src/assembly/maven/conf/maven.properties b/apache-maven/src/assembly/maven/conf/maven.properties
index 3716f5fdc5b2..1e53fa5df399 100644
--- a/apache-maven/src/assembly/maven/conf/maven.properties
+++ b/apache-maven/src/assembly/maven/conf/maven.properties
@@ -1,3 +1,22 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+
#
# Maven user properties
#
diff --git a/its/.asf.yaml b/its/.asf.yaml
deleted file mode 100644
index 658ccc8c84ed..000000000000
--- a/its/.asf.yaml
+++ /dev/null
@@ -1,12 +0,0 @@
-# see https://s.apache.org/asfyaml
-github:
- description: "Apache Maven core ITs"
- homepage: https://maven.apache.org/core-its
- labels:
- - java
- - build-management
- - maven
- enabled_merge_buttons:
- squash: true
- merge: false
- rebase: true
diff --git a/its/.gitattributes b/its/.gitattributes
deleted file mode 100644
index 556b3b118796..000000000000
--- a/its/.gitattributes
+++ /dev/null
@@ -1,4 +0,0 @@
-# Auto detect text files and perform LF normalization
-*.jar binary
-*.war binary
-
diff --git a/its/.github/dependabot.yml b/its/.github/dependabot.yml
deleted file mode 100644
index 952813794b83..000000000000
--- a/its/.github/dependabot.yml
+++ /dev/null
@@ -1,29 +0,0 @@
-#
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements. See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License. You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-version: 2
-updates:
-
- - package-ecosystem: "maven"
- directory: "/"
- schedule:
- interval: "daily"
-
- - package-ecosystem: "github-actions"
- directory: "/"
- schedule:
- interval: "daily"
-
diff --git a/its/.github/workflows/maven-verify.yml b/its/.github/workflows/maven-verify.yml
deleted file mode 100644
index 88dc784026fe..000000000000
--- a/its/.github/workflows/maven-verify.yml
+++ /dev/null
@@ -1,55 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements. See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership. The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License. You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied. See the License for the
-# specific language governing permissions and limitations
-# under the License.
-
-name: Java CI
-
-on: [push, pull_request]
-
-# clear all permissions for GITHUB_TOKEN
-permissions: {}
-
-jobs:
- build:
-
- # execute on any push or pull request from forked repo
- if: github.event_name == 'push' || ( github.event_name == 'pull_request' && github.event.pull_request.head.repo.fork )
-
- strategy:
- matrix:
- os: [ubuntu-latest]
- java: [11, 17, 21]
- fail-fast: false
-
- runs-on: ${{ matrix.os }}
-
- steps:
- - uses: actions/checkout@v4
- with:
- persist-credentials: false
-
- - name: Set up JDK
- uses: actions/setup-java@v4
- with:
- java-version: ${{ matrix.java }}
- distribution: 'temurin'
- cache: 'maven'
-
- - name: Set up Maven
- run: mvn --errors --batch-mode --show-version wrapper:wrapper "-Dtype=only-script" "-Dmaven=3.9.7"
-
- - name: Running integration tests
- run: "./mvnw -B clean install -Prun-its,embedded -Dmaven.repo.local=`pwd`/repo"
diff --git a/its/.mvn/readme.txt b/its/.mvn/readme.txt
deleted file mode 100644
index ffbfd18cc003..000000000000
--- a/its/.mvn/readme.txt
+++ /dev/null
@@ -1 +0,0 @@
-.mvn directory should exist in project root
\ No newline at end of file
diff --git a/its/Jenkinsfile b/its/Jenkinsfile
deleted file mode 100644
index b63c1733c072..000000000000
--- a/its/Jenkinsfile
+++ /dev/null
@@ -1,64 +0,0 @@
-#!groovy
-
-pipeline {
- agent any
- // save some io during the build
- options { durabilityHint('PERFORMANCE_OPTIMIZED') }
-
- stages {
- stage("Parallel Stage") {
- parallel {
- stage("Build / Test - mvn latest - JDK8 - ubuntu") {
- agent { node { label 'ubuntu' } }
- steps {
- timeout( time: 180, unit: 'MINUTES' ) {
- mavenBuild( "jdk_1.8_latest", "maven_latest")
- }
- }
- }
- stage("Build / Test - mvn latest - JDK11 - ubuntu") {
- agent { node { label 'ubuntu' } }
- steps {
- timeout( time: 180, unit: 'MINUTES' ) {
- mavenBuild( "jdk_11_latest", "maven_latest")
- }
- }
- }
- stage("Build / Test - mvn latest - JDK8 - windowx") {
- agent { node { label 'Windows' } }
- steps {
- timeout( time: 180, unit: 'MINUTES' ) {
- mavenBuild( "jdk_1.8_latest", "maven_latest")
- }
- }
- }
- stage("Build / Test - mvn latest - JDK11 - windows") {
- agent { node { label 'Windows' } }
- steps {
- timeout( time: 180, unit: 'MINUTES' ) {
- mavenBuild( "jdk_11_latest", "maven_latest")
- }
- }
- }
- }
- }
- }
-}
-
-def mavenBuild(jdk, mvnName) {
- script {
- try {
- withMaven(jdk: "$jdk", maven: "$mvnName", publisherStrategy: 'EXPLICIT', mavenOpts: "-Xms2g -Xmx4g -Djava.awt.headless=true") {
- if (isUnix()) {
- sh "mvn -V clean install -Prun-its,embedded -B"
- } else {
- bat "mvn -V clean install -Prun-its,embedded -B"
- }
- }
- }
- finally
- {
- junit testResults: 'core-it-suite/target/surefire-reports/*.xml', allowEmptyResults: true
- }
- }
-}
diff --git a/its/core-it-suite/pom.xml b/its/core-it-suite/pom.xml
index 41d54ff39c51..471a835d66a8 100644
--- a/its/core-it-suite/pom.xml
+++ b/its/core-it-suite/pom.xml
@@ -580,6 +580,13 @@ under the License.
run-its
+
+ org.apache.maven
+ apache-maven
+ 4.0.0-beta-6-SNAPSHOT
+ bin
+ zip
+
org.apache.maven.wagon
diff --git a/its/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng8106OverlappingDirectoryRolesTest.java b/its/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng8106OverlappingDirectoryRolesTest.java
index 80e38b072fee..ea058c52e24b 100644
--- a/its/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng8106OverlappingDirectoryRolesTest.java
+++ b/its/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng8106OverlappingDirectoryRolesTest.java
@@ -30,19 +30,27 @@
public class MavenITmng8106OverlappingDirectoryRolesTest extends AbstractMavenIntegrationTestCase {
public MavenITmng8106OverlappingDirectoryRolesTest() {
// Broken in: 3.9.0..3.9.6 && 4.0.0-alpha-1..4.0.0-alpha-13
- super("[,3.9.0),(3.9.6,3.999.999],[4.0.0-beta-1,)");
+ super("(3.9.6,3.999.999],[4.0.0-beta-1,)");
}
@Test
public void testDirectoryOverlap() throws Exception {
File testDir = ResourceExtractor.simpleExtractResources(getClass(), "/mng-8106");
+ String repo = new File(testDir, "repo").getAbsolutePath();
+ String tailRepo = System.getProperty("user.home") + File.separator + ".m2" + File.separator + "repository";
Verifier verifier = newVerifier(new File(testDir, "plugin").getAbsolutePath());
+ verifier.setLocalRepo(repo);
+ verifier.addCliArgument("-X");
+ verifier.addCliArgument("-Dmaven.repo.local.tail=" + tailRepo);
verifier.addCliArgument("install");
verifier.execute();
verifier.verifyErrorFreeLog();
verifier = newVerifier(new File(testDir, "jar").getAbsolutePath());
+ verifier.setLocalRepo(repo);
+ verifier.addCliArgument("-X");
+ verifier.addCliArgument("-Dmaven.repo.local.tail=" + tailRepo);
verifier.addCliArgument("install");
verifier.execute();
verifier.verifyErrorFreeLog();
diff --git a/its/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng8347TransitiveDependencyManagerTest.java b/its/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng8347TransitiveDependencyManagerTest.java
index 82df4b8fdd4b..3acddaa3e337 100644
--- a/its/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng8347TransitiveDependencyManagerTest.java
+++ b/its/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng8347TransitiveDependencyManagerTest.java
@@ -51,7 +51,6 @@ void transitiveDependencyManager() throws Exception {
verifier.addCliArgument("-V");
verifier.addCliArgument("dependency:3.8.0:tree");
verifier.addCliArgument("-Dmaven.repo.local.tail=" + testDir + "/local-repo");
- verifier.addCliArgument("-Dmaven.repo.local.tail.ignoreAvailability");
verifier.execute();
verifier.verifyErrorFreeLog();
@@ -98,7 +97,6 @@ void useCaseBndPlugin() throws Exception {
verifier.addCliArgument("-V");
verifier.addCliArgument("dependency:3.8.0:tree");
verifier.addCliArgument("-Dmaven.repo.local.tail=" + testDir + "/local-repo");
- verifier.addCliArgument("-Dmaven.repo.local.tail.ignoreAvailability");
verifier.execute();
verifier.verifyErrorFreeLog();
@@ -125,7 +123,6 @@ void useCaseQuarkusTlsRegistry() throws Exception {
verifier.addCliArgument("-V");
verifier.addCliArgument("dependency:3.8.0:tree");
verifier.addCliArgument("-Dmaven.repo.local.tail=" + testDir + "/local-repo");
- verifier.addCliArgument("-Dmaven.repo.local.tail.ignoreAvailability");
verifier.execute();
verifier.verifyErrorFreeLog();
diff --git a/its/core-it-suite/src/test/resources/mng-8347-transitive-dependency-manager/README.md b/its/core-it-suite/src/test/resources/mng-8347-transitive-dependency-manager/README.md
index 88c6e88b5b8e..5676a8b37015 100644
--- a/its/core-it-suite/src/test/resources/mng-8347-transitive-dependency-manager/README.md
+++ b/its/core-it-suite/src/test/resources/mng-8347-transitive-dependency-manager/README.md
@@ -10,13 +10,13 @@ Facts:
Command to run:
```
-mvn eu.maveniverse.maven.plugins:toolbox:tree -Dmaven.repo.local.tail=local-repo -Dmaven.repo.local.tail.ignoreAvailability
+mvn eu.maveniverse.maven.plugins:toolbox:tree -Dmaven.repo.local.tail=local-repo
```
Example output with 3.9.9: Maven 3 is not transitive regarding dependency management, and it shows 1.0.0 all way down
except for level5 that has applies depMgt from root.
```
-$ mvn -V eu.maveniverse.maven.plugins:toolbox:tree -Dmaven.repo.local.tail=local-repo -Dmaven.repo.local.tail.ignoreAvailability
+$ mvn -V eu.maveniverse.maven.plugins:toolbox:tree -Dmaven.repo.local.tail=local-repo
Apache Maven 3.9.9 (8e8579a9e76f7d015ee5ec7bfcdc97d260186937)
Maven home: /home/cstamas/.sdkman/candidates/maven/3.9.9
Java version: 21.0.4, vendor: Eclipse Adoptium, runtime: /home/cstamas/.sdkman/candidates/java/21.0.4-tem
@@ -49,7 +49,7 @@ $
Example output with 4.0.0-beta-5: **this version is transitive but broken**, as it applies level2 depMgt onto its own
dependencies.
```
-$ mvn -V eu.maveniverse.maven.plugins:toolbox:tree -Dmaven.repo.local.tail=local-repo -Dmaven.repo.local.tail.ignoreAvailability
+$ mvn -V eu.maveniverse.maven.plugins:toolbox:tree -Dmaven.repo.local.tail=local-repo
Apache Maven 4.0.0-beta-5 (6e78fcf6f5e76422c0eb358cd11f0c231ecafbad)
Maven home: /home/cstamas/.sdkman/candidates/maven/4.0.0-beta-5
Java version: 21.0.4, vendor: Eclipse Adoptium, runtime: /home/cstamas/.sdkman/candidates/java/21.0.4-tem
@@ -96,7 +96,7 @@ The **expected** output is:
Maven 4.0.0-SNAPSHOT + Resolver [2.0.3-SNAPSHOT](https://github.com/apache/maven-resolver/pull/588) output **is expected output**:
```
-$ ~/Tools/maven/apache-maven-4.0.0-beta-6-SNAPSHOT/bin/mvn -V eu.maveniverse.maven.plugins:toolbox:tree -Dmaven.repo.local.tail=local-repo -Dmaven.repo.local.tail.ignoreAvailability
+$ ~/Tools/maven/apache-maven-4.0.0-beta-6-SNAPSHOT/bin/mvn -V eu.maveniverse.maven.plugins:toolbox:tree -Dmaven.repo.local.tail=local-repo
Apache Maven 4.0.0-beta-6-SNAPSHOT (cf94fba0151ff403763bdf23eb73fe74b3d0874d)
Maven home: /home/cstamas/Tools/maven/apache-maven-4.0.0-beta-6-SNAPSHOT
Java version: 21.0.4, vendor: Eclipse Adoptium, runtime: /home/cstamas/.sdkman/candidates/java/21.0.4-tem
diff --git a/its/core-it-support/core-it-plugins/maven-it-plugin-configuration/src/main/java/org/apache/maven/plugin/coreit/PropertiesUtil.java b/its/core-it-support/core-it-plugins/maven-it-plugin-configuration/src/main/java/org/apache/maven/plugin/coreit/PropertiesUtil.java
index 7d29f7b02631..9d0a9a4414f5 100644
--- a/its/core-it-support/core-it-plugins/maven-it-plugin-configuration/src/main/java/org/apache/maven/plugin/coreit/PropertiesUtil.java
+++ b/its/core-it-support/core-it-plugins/maven-it-plugin-configuration/src/main/java/org/apache/maven/plugin/coreit/PropertiesUtil.java
@@ -104,6 +104,7 @@ public static void serialize(Properties props, String key, Object value) {
} else if (value instanceof Map) {
Map map = (Map) value;
props.setProperty(key, Integer.toString(map.size()));
+ @SuppressWarnings("checkstyle:UnusedLocalVariable")
int i = 0;
for (Iterator it = map.keySet().iterator(); it.hasNext(); i++) {
Object k = it.next();
diff --git a/its/core-it-support/core-it-plugins/maven-it-plugin-expression/src/main/java/org/apache/maven/plugin/coreit/PropertyUtil.java b/its/core-it-support/core-it-plugins/maven-it-plugin-expression/src/main/java/org/apache/maven/plugin/coreit/PropertyUtil.java
index 7e907b047f12..e5dbee2146a9 100644
--- a/its/core-it-support/core-it-plugins/maven-it-plugin-expression/src/main/java/org/apache/maven/plugin/coreit/PropertyUtil.java
+++ b/its/core-it-support/core-it-plugins/maven-it-plugin-expression/src/main/java/org/apache/maven/plugin/coreit/PropertyUtil.java
@@ -87,6 +87,7 @@ private static void store(Properties props, String key, Object obj, Collection v
} else if (obj instanceof Map) {
Map map = (Map) obj;
props.put(key, Integer.toString(map.size()));
+ @SuppressWarnings("checkstyle:UnusedLocalVariable")
int index = 0;
for (Iterator it = map.entrySet().iterator(); it.hasNext(); index++) {
Map.Entry entry = (Map.Entry) it.next();
diff --git a/its/core-it-support/core-it-plugins/maven-it-plugin-uses-wagon/src/main/java/org/apache/maven/plugin/coreit/UsesWagonMojo.java b/its/core-it-support/core-it-plugins/maven-it-plugin-uses-wagon/src/main/java/org/apache/maven/plugin/coreit/UsesWagonMojo.java
index c26a352a1580..b1f8fa6ab10b 100644
--- a/its/core-it-support/core-it-plugins/maven-it-plugin-uses-wagon/src/main/java/org/apache/maven/plugin/coreit/UsesWagonMojo.java
+++ b/its/core-it-support/core-it-plugins/maven-it-plugin-uses-wagon/src/main/java/org/apache/maven/plugin/coreit/UsesWagonMojo.java
@@ -47,6 +47,7 @@ public void execute() throws MojoExecutionException {
throw new MojoExecutionException(e.getMessage(), e);
}
try {
+ @SuppressWarnings("checkstyle:UnusedLocalVariable")
FileWagon theWagon = (FileWagon) fileWagon;
} catch (ClassCastException e) {
getLog().error("", e);
@@ -64,6 +65,7 @@ public void execute() throws MojoExecutionException {
throw new MojoExecutionException(e.getMessage(), e);
}
try {
+ @SuppressWarnings("checkstyle:UnusedLocalVariable")
ScpWagon theWagon = (ScpWagon) scpWagon;
} catch (ClassCastException e) {
getLog().error("", e);
diff --git a/its/core-it-support/core-it-plugins/mng7529-plugin/pom.xml b/its/core-it-support/core-it-plugins/mng7529-plugin/pom.xml
index 17f2edc88425..ccca07868c27 100644
--- a/its/core-it-support/core-it-plugins/mng7529-plugin/pom.xml
+++ b/its/core-it-support/core-it-plugins/mng7529-plugin/pom.xml
@@ -32,14 +32,14 @@ under the License.
Maven IT Plugin :: mng-7529 plugin
- 3.6.0
+ 3.6.0
org.apache.maven
maven-plugin-api
- ${maven-version}
+ ${maven3-version}
provided
@@ -50,13 +50,13 @@ under the License.
org.apache.maven
maven-core
- ${maven-version}
+ ${maven3-version}
provided
org.apache.maven
maven-model
- ${maven-version}
+ ${maven3-version}
provided
diff --git a/its/core-it-support/core-it-plugins/mng7529-plugin/src/main/java/org/apache/maven/its/mng7529/plugin/ResolveMojo.java b/its/core-it-support/core-it-plugins/mng7529-plugin/src/main/java/org/apache/maven/its/mng7529/plugin/ResolveMojo.java
index c6de9c7afdcf..6a220c9313b0 100644
--- a/its/core-it-support/core-it-plugins/mng7529-plugin/src/main/java/org/apache/maven/its/mng7529/plugin/ResolveMojo.java
+++ b/its/core-it-support/core-it-plugins/mng7529-plugin/src/main/java/org/apache/maven/its/mng7529/plugin/ResolveMojo.java
@@ -58,6 +58,7 @@ public void execute() throws MojoExecutionException {
request.setMavenProject(project);
request.setRepositorySession(buildingRequest.getRepositorySession());
+ @SuppressWarnings("checkstyle:UnusedLocalVariable")
DependencyResolutionResult result = dependencyResolver.resolve(request);
getLog().info("Resolution successful, resolved ok");
diff --git a/its/pom.xml b/its/pom.xml
index 86815f01f188..57a70f867c6c 100644
--- a/its/pom.xml
+++ b/its/pom.xml
@@ -22,9 +22,8 @@ under the License.
org.apache.maven
- maven-parent
- 41
-
+ maven
+ 4.0.0-beta-6-SNAPSHOT
org.apache.maven.its
@@ -71,10 +70,10 @@ under the License.
core-its
${user.home}/maven-sites
true
- 8
- 8
+
+
- 3.8.6
+ 4.0.0-beta-6-SNAPSHOT
3.6.4
diff --git a/pom.xml b/pom.xml
index 4bfab5894902..f1b5e3dd04c0 100644
--- a/pom.xml
+++ b/pom.xml
@@ -170,6 +170,8 @@ under the License.
3.5.3
7.1.0
2.10.0
+
+ ${project.version}
@@ -181,157 +183,157 @@ under the License.
org.apache.maven
maven-artifact
- ${project.version}
+ ${maven-version}
org.apache.maven
maven-builder-support
- ${project.version}
+ ${maven-version}
org.apache.maven
maven-jline
- ${project.version}
+ ${maven-version}
org.apache.maven
maven-logging
- ${project.version}
+ ${maven-version}
org.apache.maven
maven-core
- ${project.version}
+ ${maven-version}
org.apache.maven
maven-impl
- ${project.version}
+ ${maven-version}
org.apache.maven
maven-embedder
- ${project.version}
+ ${maven-version}
org.apache.maven
maven-cli
- ${project.version}
+ ${maven-version}
org.apache.maven
maven-model
- ${project.version}
+ ${maven-version}
org.apache.maven
maven-api-core
- ${project.version}
+ ${maven-version}
org.apache.maven
maven-api-meta
- ${project.version}
+ ${maven-version}
org.apache.maven
maven-api-model
- ${project.version}
+ ${maven-version}
org.apache.maven
maven-api-settings
- ${project.version}
+ ${maven-version}
org.apache.maven
maven-api-spi
- ${project.version}
+ ${maven-version}
org.apache.maven
maven-api-toolchain
- ${project.version}
+ ${maven-version}
org.apache.maven
maven-api-plugin
- ${project.version}
+ ${maven-version}
org.apache.maven
maven-api-xml
- ${project.version}
+ ${maven-version}
org.apache.maven
maven-api-di
- ${project.version}
+ ${maven-version}
org.apache.maven
maven-api-metadata
- ${project.version}
+ ${maven-version}
org.apache.maven
maven-api-cli
- ${project.version}
+ ${maven-version}
org.apache.maven
maven-di
- ${project.version}
+ ${maven-version}
org.apache.maven
maven-model-builder
- ${project.version}
+ ${maven-version}
org.apache.maven
maven-plugin-api
- ${project.version}
+ ${maven-version}
org.apache.maven
maven-repository-metadata
- ${project.version}
+ ${maven-version}
org.apache.maven
maven-resolver-provider
- ${project.version}
+ ${maven-version}
org.apache.maven
maven-settings
- ${project.version}
+ ${maven-version}
org.apache.maven
maven-settings-builder
- ${project.version}
+ ${maven-version}
org.apache.maven
maven-toolchain-model
- ${project.version}
+ ${maven-version}
org.apache.maven
maven-toolchain-builder
- ${project.version}
+ ${maven-version}
org.apache.maven
maven-xml
- ${project.version}
+ ${maven-version}
org.apache.maven
maven-compat
- ${project.version}
+ ${maven-version}
@@ -773,6 +775,7 @@ under the License.
src/test/resources*/**
src/test/projects/**
src/test/remote-repo/**
+ its/**
**/*.odg
**/*.svg
.asf.yaml
@@ -837,54 +840,66 @@ under the License.
-
- org.fusesource.mvnplugins
- maven-graph-plugin
- 1.45
- false
-
-
- graph
-
- reactor
-
- pre-site
-
- true
- true
- test
- true
- true
- ${project.build.directory}/graph/reactor-graph.dot
-
-
-
-
-
- dev.jbang
- jbang-maven-plugin
- 0.0.8
- false
-
-
- graph
-
- run
-
- pre-site
-
-
-
- --verbose
-
-
-
-
-
+
+ graph
+
+
+ !windows
+
+
+
+
+
+ org.fusesource.mvnplugins
+ maven-graph-plugin
+ 1.45
+ false
+
+
+ graph
+
+ reactor
+
+ pre-site
+
+ true
+ true
+ test
+ true
+ true
+ ${project.build.directory}/graph/reactor-graph.dot
+
+
+
+
+
+ dev.jbang
+ jbang-maven-plugin
+ 0.0.8
+ false
+
+
+ graph
+
+ run
+
+ pre-site
+
+
+
+ --verbose
+
+
+
+
+
+
+
+
apache-release
@@ -1014,5 +1029,14 @@ under the License.
+
+ run-its
+
+ its
+
+
+ ${session.rootDirectory}/apache-maven/target/apache-maven-${project.version}-bin.zip
+
+