{"record":{"id":"fee9186c9cfb4c40","repo":"apache/maven","slug":"transport-name-is-deprecated-renamed-use","errorCode":null,"errorMessage":"Transport name '{}' is DEPRECATED/RENAMED, use '{}' instead","messagePattern":"Transport name '(.+?)' is DEPRECATED/RENAMED, use '(.+?)' instead","errorType":"console","errorClass":null,"httpStatus":null,"severity":"warning","filePath":"impl/maven-core/src/main/java/org/apache/maven/internal/aether/DefaultRepositorySystemSessionFactory.java","lineNumber":323,"sourceCode":"            }\n\n            configProps.put(\"aether.transport.wagon.perms.fileMode.\" + server.getId(), server.getFilePermissions());\n            configProps.put(\"aether.transport.wagon.perms.dirMode.\" + server.getId(), server.getDirectoryPermissions());\n        }\n        sessionBuilder.setAuthenticationSelector(authSelector);\n\n        Object transport =\n                mergedProps.getOrDefault(Constants.MAVEN_RESOLVER_TRANSPORT, MAVEN_RESOLVER_TRANSPORT_DEFAULT);\n        if (MAVEN_RESOLVER_TRANSPORT_DEFAULT.equals(transport)) {\n            // The \"default\" mode (user did not set anything) from now on defaults to AUTO\n        } else if (MAVEN_RESOLVER_TRANSPORT_JDK.equals(transport)) {\n            // Make sure (whatever extra priority is set) that resolver file/jdk is selected\n            configProps.put(FILE_TRANSPORTER_PRIORITY_KEY, RESOLVER_MAX_PRIORITY);\n            configProps.put(JDK_HTTP_TRANSPORTER_PRIORITY_KEY, RESOLVER_MAX_PRIORITY);\n        } else if (MAVEN_RESOLVER_TRANSPORT_APACHE.equals(transport)\n                || MAVEN_RESOLVER_TRANSPORT_NATIVE.equals(transport)) {\n            if (MAVEN_RESOLVER_TRANSPORT_NATIVE.equals(transport)) {\n                logger.warn(\n                        \"Transport name '{}' is DEPRECATED/RENAMED, use '{}' instead\",\n                        MAVEN_RESOLVER_TRANSPORT_NATIVE,\n                        MAVEN_RESOLVER_TRANSPORT_APACHE);\n            }\n            // Make sure (whatever extra priority is set) that resolver file/apache is selected\n            configProps.put(FILE_TRANSPORTER_PRIORITY_KEY, RESOLVER_MAX_PRIORITY);\n            configProps.put(APACHE_HTTP_TRANSPORTER_PRIORITY_KEY, RESOLVER_MAX_PRIORITY);\n        } else if (MAVEN_RESOLVER_TRANSPORT_WAGON.equals(transport)) {\n            // Make sure (whatever extra priority is set) that wagon is selected\n            configProps.put(WAGON_TRANSPORTER_PRIORITY_KEY, RESOLVER_MAX_PRIORITY);\n        } else if (!MAVEN_RESOLVER_TRANSPORT_AUTO.equals(transport)) {\n            throw new IllegalArgumentException(\"Unknown resolver transport '\" + transport\n                    + \"'. Supported transports are: \" + MAVEN_RESOLVER_TRANSPORT_WAGON + \", \"\n                    + MAVEN_RESOLVER_TRANSPORT_APACHE + \", \" + MAVEN_RESOLVER_TRANSPORT_JDK + \", \"\n                    + MAVEN_RESOLVER_TRANSPORT_AUTO);\n        }\n\n        sessionBuilder.setIgnoreArtifactDescriptorRepositories(request.isIgnoreTransitiveRepositories());","sourceCodeStart":305,"sourceCodeEnd":341,"githubUrl":"https://github.com/apache/maven/blob/e4093d4e120eac99d6bdce5ba67cace2f3085c97/impl/maven-core/src/main/java/org/apache/maven/internal/aether/DefaultRepositorySystemSessionFactory.java#L305-L341","documentation":"-Dmaven.resolver.transport selects the transport Resolver uses (file/jdk/apache/wagon/auto). The value 'native' was renamed to 'apache' (Apache HttpClient transporters). Maven still accepts 'native', forces the file+apache transporter priorities exactly as 'apache' would, and warns that the name is deprecated.","triggerScenarios":"Starting Maven with -Dmaven.resolver.transport=native on the CLI, in .mvn/maven.config, MAVEN_OPTS, or CI pipeline environment; value propagated from old tuning guides.","commonSituations":"Build scripts written when the Apache transport was called 'native' (Maven 3.9-era resolver tuning); CI templates copied between projects.","solutions":["Change the property value from 'native' to 'apache': -Dmaven.resolver.transport=apache","Search .mvn/maven.config, MAVEN_OPTS and CI variables for the stale value and update all occurrences","Consider dropping the property entirely - 'auto' (the default) picks the best available transport"],"exampleFix":"# before\nmvn -Dmaven.resolver.transport=native clean install\n# after\nmvn -Dmaven.resolver.transport=apache clean install","handlingStrategy":"validation","validationCode":"# accept only current transport names in build scripts\nTRANSPORT=\"${MAVEN_RESOLVER_TRANSPORT:-auto}\"\ncase \"$TRANSPORT\" in auto|jdk|apache|wagon) ;; native) TRANSPORT=apache ;; *) TRANSPORT=auto ;; esac\nmvn -Dmaven.resolver.transport=\"$TRANSPORT\" clean install","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Audit .mvn/maven.config, MAVEN_OPTS and CI variables for maven.resolver.transport=native","Prefer leaving the property unset (auto) unless a specific transport is required"],"tags":["resolver","transport","deprecated-option","configuration"],"backgroundTag":"renamed-config-option","analyzedSha":"e4093d4e120eac99d6bdce5ba67cace2f3085c97","analyzedAt":"2026-08-21T22:58:24.034Z","schemaVersion":2},"datasetVersion":"2026-08-21T23:17:16.201Z"}