redhat-developer / redhat-developer/vscode-java

Maven cannot build the project

Open
#1,996 6 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

compile Maven upstream
Dominant language
TypeScript
Stars
2.3k
Forks
546
Avg merge
20h 1m
Merged PRs (30d)
11

Description

Java LS cannot build the project. In pom.xml I see an error:

Project build error: Non-resolvable parent POM for org.jboss.eap.quickstarts:kitchensink-jsp:7.4.0.Beta: Could not transfer artifact org.jboss.eap.quickstarts:quickstart-parent:pom:7.4.0.Beta from/to local-galleon-repository (file:///opt/jboss/container/wildfly/s2i/galleon/galleon-m2-repository): Repository path /opt/jboss/container/wildfly/s2i/galleon/galleon-m2-repository does not exist, and cannot be created. and 'parent.relativePath' points at wrong local POM

but it could be built from the terminal via mvn clean install -Dcom.redhat.xpaas.repo.jbossorg. After building from the terminal Java LS pick ups all dependencies and works good.

The project is located here: https://github.com/svor/jboss-eap-quickstarts
My VS Code settings.json:

{
    "java.jdt.ls.vmargs": "-Dcom.redhat.xpaas.repo.jbossorg",
    "java.configuration.maven.userSettings": "/home/vsvydenko/.m2/settings.xml",
    "java.configuration.maven.globalSettings": "/home/vsvydenko/.m2/settings.xml"
}
My settings.xml
<?xml version="1.0" encoding="UTF-8"?>
<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">

    <!-- ### configured local repository ### -->

  <servers>
    <!-- ### configured servers ### -->
  </servers>

  <mirrors>
    <!-- ### configured mirrors ### -->
  </mirrors>

  <proxies>
    <!-- ### configured http proxy ### -->
  </proxies>

  <profiles>

    <!-- JBoss EAP Maven repository -->
    <profile>
      <id>jboss-eap-repository</id>
      <activation>
        <property>
          <name>com.redhat.xpaas.repo.redhatga</name>
          <value/>
        </property>
      </activation>
      <repositories>
        <repository>
          <id>redhat-ga-repository</id>
          <url>https://maven.repository.redhat.com/ga/</url>
          <releases>
            <enabled>true</enabled>
          </releases>
          <snapshots>
            <enabled>false</enabled>
          </snapshots>
        </repository>
        <repository>
          <id>redhat-ea-repository</id>
          <url>https://maven.repository.redhat.com/earlyaccess/all/</url>
          <releases>
            <enabled>true</enabled>
          </releases>
          <snapshots>
            <enabled>false</enabled>
          </snapshots>
        </repository>
        <repository>
          <id>jboss-eap-repository</id>
          <url>https://maven.repository.redhat.com/techpreview/all</url>
          <releases>
            <enabled>true</enabled>
          </releases>
          <snapshots>
            <enabled>false</enabled>
          </snapshots>
        </repository>
      </repositories>
      <pluginRepositories>
        <pluginRepository>
          <id>redhat-ga-plugin-repository</id>
          <url>https://maven.repository.redhat.com/ga/</url>
          <releases>
            <enabled>true</enabled>
          </releases>
          <snapshots>
            <enabled>false</enabled>
          </snapshots>
        </pluginRepository>
        <pluginRepository>
          <id>redhat-ea-plugin-repository</id>
          <url>https://maven.repository.redhat.com/earlyaccess/all/</url>
          <releases>
            <enabled>true</enabled>
          </releases>
          <snapshots>
            <enabled>false</enabled>
          </snapshots>
        </pluginRepository>
        <pluginRepository>
          <id>jboss-eap-plugin-repository</id>
          <url>https://maven.repository.redhat.com/techpreview/all</url>
          <releases>
            <enabled>true</enabled>
          </releases>
          <snapshots>
            <enabled>false</enabled>
          </snapshots>
        </pluginRepository>
      </pluginRepositories>
    </profile>

    <!-- JBoss EAP Maven repository (HTTP version, disabled by default) -->
    <profile>
      <id>jboss-eap-repository-insecure</id>
      <repositories>
        <repository>
          <id>redhat-ga-repository</id>
          <url>http://maven.repository.redhat.com/ga/</url>
          <releases>
            <enabled>true</enabled>
          </releases>
          <snapshots>
            <enabled>false</enabled>
          </snapshots>
        </repository>
        <repository>
          <id>redhat-ea-repository</id>
          <url>http://maven.repository.redhat.com/earlyaccess/all/</url>
          <releases>
            <enabled>true</enabled>
          </releases>
          <snapshots>
            <enabled>false</enabled>
          </snapshots>
        </repository>
        <repository>
          <id>jboss-eap-repository</id>
          <url>http://maven.repository.redhat.com/techpreview/all</url>
          <releases>
            <enabled>true</enabled>
          </releases>
          <snapshots>
            <enabled>false</enabled>
          </snapshots>
        </repository>
      </repositories>
      <pluginRepositories>
        <pluginRepository>
          <id>redhat-ga-plugin-repository</id>
          <url>http://maven.repository.redhat.com/ga/</url>
          <releases>
            <enabled>true</enabled>
          </releases>
          <snapshots>
            <enabled>false</enabled>
          </snapshots>
        </pluginRepository>
        <pluginRepository>
          <id>redhat-ea-plugin-repository</id>
          <url>http://maven.repository.redhat.com/earlyaccess/all/</url>
          <releases>
            <enabled>true</enabled>
          </releases>
          <snapshots>
            <enabled>false</enabled>
          </snapshots>
        </pluginRepository>
        <pluginRepository>
          <id>jboss-eap-plugin-repository</id>
          <url>http://maven.repository.redhat.com/techpreview/all</url>
          <releases>
            <enabled>true</enabled>
          </releases>
          <snapshots>
            <enabled>false</enabled>
          </snapshots>
        </pluginRepository>
      </pluginRepositories>
    </profile>

    <!-- JBoss Community Maven repository -->
    <profile>
      <id>jboss-community-repository</id>
      <activation>
        <property>
          <name>com.redhat.xpaas.repo.jbossorg</name>
          <value/>
        </property>
      </activation>
      <repositories>
        <repository>
          <id>jboss-community-repository</id>
          <url>https://repository.jboss.org/nexus/content/groups/public/</url>
          <releases>
            <enabled>true</enabled>
          </releases>
          <snapshots>
            <enabled>false</enabled>
          </snapshots>
        </repository>
      </repositories>
      <pluginRepositories>
        <pluginRepository>
          <id>jboss-community-plugin-repository</id>
          <url>https://repository.jboss.org/nexus/content/groups/public/</url>
          <releases>
            <enabled>true</enabled>
          </releases>
          <snapshots>
            <enabled>false</enabled>
          </snapshots>
        </pluginRepository>
      </pluginRepositories>
    </profile>

    <!-- JBoss Community Maven repository (HTTP version, disabled by default) -->
    <profile>
      <id>jboss-community-repository-insecure</id>
      <repositories>
        <repository>
          <id>jboss-community-repository</id>
          <url>http://repository.jboss.org/nexus/content/groups/public/</url>
          <releases>
            <enabled>true</enabled>
          </releases>
          <snapshots>
            <enabled>false</enabled>
          </snapshots>
        </repository>
      </repositories>
      <pluginRepositories>
        <pluginRepository>
          <id>jboss-community-plugin-repository</id>
          <url>http://repository.jboss.org/nexus/content/groups/public/</url>
          <releases>
            <enabled>true</enabled>
          </releases>
          <snapshots>
            <enabled>false</enabled>
          </snapshots>
        </pluginRepository>
      </pluginRepositories>
    </profile>

    <!-- Override the repository "central" from the Maven Super POM, to set HTTPS by default -->
    <profile>
      <id>securecentral</id>
      <repositories>
        <repository>
          <id>central</id>
          <url>https://repo1.maven.org/maven2</url>
          <releases>
            <enabled>true</enabled>
          </releases>
        </repository>
      </repositories>
      <pluginRepositories>
        <pluginRepository>
          <id>central</id>
          <url>https://repo1.maven.org/maven2</url>
          <releases>
            <enabled>true</enabled>
          </releases>
        </pluginRepository>
      </pluginRepositories>
    </profile>

    <!-- central repositories via HTTP. Disabled by default. -->
    <profile>
      <id>insecurecentral</id>
      <repositories>
        <repository>
          <id>central</id>
          <url>http://repo1.maven.org/maven2</url>
          <releases>
            <enabled>true</enabled>
          </releases>
        </repository>
      </repositories>
      <pluginRepositories>
        <pluginRepository>
          <id>central</id>
          <url>http://repo1.maven.org/maven2</url>
          <releases>
            <enabled>true</enabled>
          </releases>
        </pluginRepository>
      </pluginRepositories>
    </profile>

    <profile>
      <id>local-galleon-repository</id>
      <activation><activeByDefault>true</activeByDefault></activation>
      <repositories>
        <repository>
          <id>local-galleon-repository</id>
          <url>file:///opt/jboss/container/wildfly/s2i/galleon/galleon-m2-repository</url>
          <releases>
            <enabled>true</enabled>
          </releases>
          <snapshots>
            <enabled>false</enabled>
          </snapshots>
        </repository>
      </repositories>
      <pluginRepositories>
        <pluginRepository>
          <id>local-galleon-plugin-repository</id>
          <url>file:///opt/jboss/container/wildfly/s2i/galleon/galleon-m2-repository</url>
          <releases>
            <enabled>true</enabled>
          </releases>
          <snapshots>
            <enabled>false</enabled>
          </snapshots>
        </pluginRepository>
      </pluginRepositories>
    </profile>
 <!-- ### configured profiles ### -->

  </profiles>
  <activeProfiles>
    <activeProfile>securecentral</activeProfile>
    <!-- ### active profiles ### -->
  </activeProfiles>
</settings>
Environment
  • Operating System: Linux
  • JDK version: openjdk 11.0.8 2020-07-14
  • Visual Studio Code version: 1.57.1
  • Java extension version: 0.79.2
Steps To Reproduce
  1. Cleanup maven repositories
  2. Add setting.xml from the description into your .m2
  3. Open jboss-eap-quickstarts project
  4. Open any java file
  5. See the error in pom.xml
  6. Try to build the project from terminal (cd kitchensink-jsp): mvn clean install -Dcom.redhat.xpaas.repo.jbossorg

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the reproduced error in pom.xml and compare Java LS behavior with the supplied settings.xml and java.jdt.ls.vmargs configuration. Run the listed Maven command in kitchensink-jsp, then inspect how the project is imported; done means Java LS resolves the parent POM and dependencies without requiring a prior terminal build.

Written by the indexing model from the issue text.

Assessment

Tech stack
java, vscode
Domain
build-system, developer-experience
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.