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 + +