You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@maven.apache.org by "Robert Scholte (Jira)" <ji...@apache.org> on 2020/07/26 09:16:00 UTC

[jira] [Closed] (MENFORCER-348) add a graalvm enforcer rule

     [ https://issues.apache.org/jira/browse/MENFORCER-348?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Robert Scholte closed MENFORCER-348.
------------------------------------
      Assignee: Robert Scholte
    Resolution: Won't Fix

The rules we maintain should be scoped to things all projects have: OS, JDK, Maven and the pom. This proposal is too specific and should be written as a custom rule (https://maven.apache.org/enforcer/enforcer-api/writing-a-custom-rule.html).

> add a graalvm enforcer rule
> ---------------------------
>
>                 Key: MENFORCER-348
>                 URL: https://issues.apache.org/jira/browse/MENFORCER-348
>             Project: Maven Enforcer Plugin
>          Issue Type: New Feature
>          Components: Standard Rules
>            Reporter: Ian Springer
>            Assignee: Robert Scholte
>            Priority: Major
>
> Our project relies on the GraalVM. We currently have a gmavenplus-plugin snippet that enforces 1) that the build JDK is GraalVM, and 2) that it has the required version. It looks like this:
>  
> {code:java}
> <script><![CDATA[
>     import org.apache.tools.ant.BuildLogger
>     import org.apache.tools.ant.types.LogLevel
>     def currentProjectDir = new File("${basedir}")
>     def javaVmName = System.properties['java.vm.name']
>     def vmVersion = "${java.vm.version}".tokenize("-")
>     def runtimeVer = "${java.runtime.version}".tokenize(".")
>     def graalVersion = "${graal.version}";
>     if (graalVersion.reverse().take(1) == "0") {
>         graalVersion = graalVersion.substring(0, graalVersion.length() - 2)
>     }
>     if (!(javaVmName =~ "GraalVM") && !(runtimeVer.contains("graal"))) {
>         ant.fail "Build JVM is not GraalVM."
>     }
>     if (!javaVmName.endsWith("${graal.version}") && !(vmVersion.contains(graalVersion))) {
>         ant.fail "GraalVM version is not ${graal.version}. Found ${vmVersion} instead."
>     }
>     print "Build JVM: ${javaVmName}\n"
> ]]>
> </script>
> {code}
>  
> It would be great if the enforcer plugin had a builtin rule for this that looked like this:
>  
> {code:java}
> <requireGraalVmVersion> 
>     <version>19.3.1</version>
> </requireGraalVmVersion>
> {code}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)