Uploaded image for project: 'Maven'
  1. Maven
  2. MNG-7189

Remove undocumented environment variable MAVEN_BASEDIR in startup scripts

    XMLWordPrintableJSON

Details

    Description

      During a review I have found this:

      MAVEN_PROJECTBASEDIR="${MAVEN_BASEDIR:-`find_maven_basedir "$@"`}"
      

      and

      set "MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR%"
      if not "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir
      

      I was about to remove it until I have found:

      $ grep -r MAVEN_BASEDIR .
      ./core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5937MavenWrapper.java:        envVars.put( "MAVEN_BASEDIR", testDir.getAbsolutePath() );
      ./core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5937MavenWrapper.java:        envVars.put( "MAVEN_BASEDIR", testDir.getAbsolutePath() );
      ./core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5937MavenWrapper.java:        envVars.put( "MAVEN_BASEDIR", testDir.getAbsolutePath() );
      ./core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5937MavenWrapper.java:        envVars.put( "MAVEN_BASEDIR", testDir.getAbsolutePath() );
      ./core-it-suite/src/test/java/org/apache/maven/it/MavenITmng6118SubmoduleInvocation.java:        // It seems MAVEN_BASEDIR isn't always properly set, so make sure to have the right value here
      ./core-it-suite/src/test/java/org/apache/maven/it/MavenITmng6118SubmoduleInvocation.java:        envVars.put( "MAVEN_BASEDIR", testDir.getAbsolutePath() );
      ./environments/solaris-10-jdk7/apache-maven-3.3.9.patch:< MAVEN_PROJECTBASEDIR="${MAVEN_BASEDIR:-$(find_maven_basedir)}"
      ./environments/solaris-10-jdk7/apache-maven-3.3.9.patch:> MAVEN_PROJECTBASEDIR="${MAVEN_BASEDIR:-`find_maven_basedir`}"
      ./environments/solaris-10-jdk8/apache-maven-3.3.9.patch:< MAVEN_PROJECTBASEDIR="${MAVEN_BASEDIR:-$(find_maven_basedir)}"
      ./environments/solaris-10-jdk8/apache-maven-3.3.9.patch:> MAVEN_PROJECTBASEDIR="${MAVEN_BASEDIR:-`find_maven_basedir`}"
      

      It is not clear why this variable is there and and why it is necessary. There are several ways to resolve this issue:

      • Remove it and rely on basedir discovery in scripts
      • Document it officially in the prolog of the scripts
      • Inline document them as private and used for testing purposes only

      Attachments

        Activity

          People

            michael-o Michael Osipov
            michael-o Michael Osipov
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: