[ 
https://issues.apache.org/jira/browse/MTOOLCHAINS-44?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17820485#comment-17820485
 ] 

Elliotte Rusty Harold commented on MTOOLCHAINS-44:
--------------------------------------------------

My gut is that if a toolchain can't be located, we shouldn't simply use 
JAVA_HOME. Erroring is better here.

However, we might be able to define some defaults for certain JDK toolchains. 
The common case for toolchains is that the user wants a specific JDK version. 
If that's all they request, and toolchains.xml can't be found, or doesn't 
contain a matching JDK version, maven could still  search in standard locations 
locally. For instance, suppose this is the configuration

 {{       <configuration>
          <toolchains>
            <jdk>
              <version>1.8</version>
            </jdk>
          </toolchains>
        </configuration>}}


On a Mac you could run "/usr/libexec/java_home -V" to find a JDK that provides 
version 1.8.

> Use default JDK if it matches the request and no other toolchain is defined
> ---------------------------------------------------------------------------
>
>                 Key: MTOOLCHAINS-44
>                 URL: https://issues.apache.org/jira/browse/MTOOLCHAINS-44
>             Project: Maven Toolchains Plugin
>          Issue Type: Improvement
>    Affects Versions: 3.1.0
>            Reporter: dennis lucero
>            Priority: Major
>
> Currently it is needed to have the toolchains defined in the toolchains.xml 
> file. The [Maven Docker images|https://hub.docker.com/_/maven] do not 
> [include a useful toolchains 
> file|https://github.com/carlossg/docker-maven/issues/303]. But since it’s 
> possible to [derive a usable toolchain from the system 
> properties|https://github.com/carlossg/docker-maven/issues/303#issuecomment-1310895631],
>  it should not be required to store that information in the toolchains.xml 
> file. Instead, Maven should check if the toolchain request could be fulfilled 
> by the JDK running Maven.
> I’m not sure if it’s reasonable to do this in all cases or only if the 
> toolchains file does not contain any toolchain. For example, if the 
> toolchains file only contains a Java 16 toolchain and the project requires 
> Java 17 (exactly, not 17 or later) and Maven is run with Java 17, it would be 
> possible to build the project (with Java 17), but probably not a good idea 
> since it will fail when the Java installation Maven is running on is updated 
> to version 18.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to