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

Maven core extension resolution ignores repositories from activeByDefault profiles in settings.xml

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Reopened
    • Minor
    • Resolution: Unresolved
    • 3.3.9
    • 4.0.x-candidate
    • Profiles, Settings
    • None

    Description

      When building a project with a core extension in .mvn/extensions.xml, where the core extension is not installed locally but needs to be retrieved from a remote repository, profiles from settings.xml with repositories which are <activeByDefault>true</activeByDefault>, are ignored, failing the resolution of the core extension.

      If the profile is activated from within an activeProfiles section, they are not ignored and resolution succeeds.

      Concrete example:

      .mvn/extensions.xml
      <?xml version="1.0" encoding="UTF-8"?>
      <extensions>
        <extension>
          <groupId>org.metaborg</groupId>
          <artifactId>spoofax-maven-plugin-pomless</artifactId>
          <version>2.0.0-SNAPSHOT</version>
        </extension>
      </extensions>
      
      ~/.m2/settings.xml
      <?xml version="1.0" ?>
      <settings
        xmlns="http://maven.apache.org/SETTINGS/1.0.0"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd"
      >
        <profiles>
          <profile>
            <id>add-metaborg-snapshot-repos</id>
            <activation>
              <activeByDefault>true</activeByDefault>
            </activation>
            <repositories>
              <repository>
                <id>metaborg-snapshot-repo</id>
                <url>http://artifacts.metaborg.org/content/repositories/snapshots/</url>
                <releases>
                  <enabled>false</enabled>
                </releases>
                <snapshots>
                  <enabled>true</enabled>
                </snapshots>
              </repository>
            </repositories>
            <pluginRepositories>
              <pluginRepository>
                <id>metaborg-snapshot-repo</id>
                <url>http://artifacts.metaborg.org/content/repositories/snapshots/</url>
                <releases>
                  <enabled>false</enabled>
                </releases>
                <snapshots>
                  <enabled>true</enabled>
                </snapshots>
              </pluginRepository>
            </pluginRepositories>
          </profile>
        </profiles>
      </settings>
      

      Results in failed resolution:

      mvn -Dmaven.repo.local=.cleanmvnrepo clean verify
      [WARNING] The POM for org.metaborg:spoofax-maven-plugin-pomless:jar:2.0.0-SNAPSHOT is missing, no dependency information available
      [WARNING] Failed to read extensions descriptor /Users/gohla/spoofax/master/repo/spoofax-releng/sdf/org.metaborg.meta.lang.sdf/.mvn/extensions.xml: Plugin org.metaborg:spoofax-maven-plugin-pomless:2.0.0-SNAPSHOT or one of its dependencies could not be resolved: Could not find artifact org.metaborg:spoofax-maven-plugin-pomless:jar:2.0.0-SNAPSHOT
      

      Whereas with the following settings file it succeeds to resolve the core extension:

      ~/.m2/settings.xml
      <?xml version="1.0" ?>
      <settings
        xmlns="http://maven.apache.org/SETTINGS/1.0.0"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd"
      >
        <profiles>
          <profile>
            <id>add-metaborg-snapshot-repos</id>
            <repositories>
              <repository>
                <id>metaborg-snapshot-repo</id>
                <url>http://artifacts.metaborg.org/content/repositories/snapshots/</url>
                <releases>
                  <enabled>false</enabled>
                </releases>
                <snapshots>
                  <enabled>true</enabled>
                </snapshots>
              </repository>
            </repositories>
            <pluginRepositories>
              <pluginRepository>
                <id>metaborg-snapshot-repo</id>
                <url>http://artifacts.metaborg.org/content/repositories/snapshots/</url>
                <releases>
                  <enabled>false</enabled>
                </releases>
                <snapshots>
                  <enabled>true</enabled>
                </snapshots>
              </pluginRepository>
            </pluginRepositories>
          </profile>
        </profiles>
        <activeProfiles>
          <activeProfile>add-metaborg-snapshot-repos</activeProfile>
        </activeProfiles>
      </settings>
      

      Attachments

        Issue Links

          Activity

            People

              Unassigned Unassigned
              Gohla Gabriƫl Konat
              Votes:
              1 Vote for this issue
              Watchers:
              11 Start watching this issue

              Dates

                Created:
                Updated: