0

I'm coming back to my origin of Java development. I'm use to work in C# with Nuget packages. I have basic notion of Maven. I would like to use VSC (Visual Studio Code).

I'm looking how I can import my first package to use a function/method ByteUtils. It seems this method come from an Apache package.

So here is my pom.xml

<?xml version="1.0" encoding="UTF-8"?>

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <groupId>testGroupId</groupId>
  <artifactId>artifactId</artifactId>
  <version>1.0</version>

  <name>artifactId</name>
  <!-- FIXME change it to the project's website -->
  <url>http://www.example.com</url>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <maven.compiler.source>1.7</maven.compiler.source>
    <maven.compiler.target>1.7</maven.compiler.target>
  </properties>

  <dependencies>

    <dependency>
      <groupId>org.apache</groupId>
      <artifactId>apache</artifactId>
      <version>21</version>
    </dependency>

    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.11</version>
      <scope>test</scope>
    </dependency>
  </dependencies>

  <build>
    <pluginManagement><!-- lock down plugins versions to avoid using Maven defaults (may be moved to parent pom) -->
      <plugins>
        <!-- clean lifecycle, see https://maven.apache.org/ref/current/maven-core/lifecycles.html#clean_Lifecycle -->
        <plugin>
          <artifactId>maven-clean-plugin</artifactId>
          <version>3.1.0</version>
        </plugin>
        <!-- default lifecycle, jar packaging: see https://maven.apache.org/ref/current/maven-core/default-bindings.html#Plugin_bindings_for_jar_packaging -->
        <plugin>
          <artifactId>maven-resources-plugin</artifactId>
          <version>3.0.2</version>
        </plugin>
        <plugin>
          <artifactId>maven-compiler-plugin</artifactId>
          <version>3.8.0</version>
        </plugin>
        <plugin>
          <artifactId>maven-surefire-plugin</artifactId>
          <version>2.22.1</version>
        </plugin>
        <plugin>
          <artifactId>maven-jar-plugin</artifactId>
          <version>3.0.2</version>
        </plugin>
        <plugin>
          <artifactId>maven-install-plugin</artifactId>
          <version>2.5.2</version>
        </plugin>
        <plugin>
          <artifactId>maven-deploy-plugin</artifactId>
          <version>2.8.2</version>
        </plugin>
        <!-- site lifecycle, see https://maven.apache.org/ref/current/maven-core/lifecycles.html#site_Lifecycle -->
        <plugin>
          <artifactId>maven-site-plugin</artifactId>
          <version>3.7.1</version>
        </plugin>
        <plugin>
          <artifactId>maven-project-info-reports-plugin</artifactId>
          <version>3.0.0</version>
        </plugin>
      </plugins>
    </pluginManagement>
  </build>
</project>

And a screenshot with the issue:

enter image description here

enter image description here

enter image description here

The container 'Maven Dependencies' references non existing library 'C:\Users\xxxx.m2\repository\org\apache\apache\21\apache-21.jar' Missing artifact org.apache:apache:jar:21

To be complete here is my app.java

package testGroupId;

import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

public class App 
{
    public static void main(String[] args) throws Exception
    {
        MessageDigest md = null;
        try
        {
            md = MessageDigest.getInstance("MD5");
        }
        catch (NoSuchAlgorithmException e)
        {
            System.out.println(e.getMessage());
        }
        //byte[] theDigest = md.digest(ByteUtils.intToBytesBigEndian(123456789))
        System.out.println("Hello Java");
    }
}

My question. Why ny org.apache dependency cannot be loaded or downloaded?

4
  • Are you able to build from command prompt? Commented Aug 7, 2019 at 8:24
  • Before adding my dependency org.apache yes Commented Aug 7, 2019 at 8:27
  • Maybe my dependency is wrongly referenced? It is a problem of reference. When I remove it from pom.xml I can build again. I can build with VSC and with the "compile" option of Maven Project section. Commented Aug 7, 2019 at 8:33
  • FYI: Introducing the Oracle Java Platform Extension for Visual Studio Code Commented Mar 8, 2024 at 9:49

1 Answer 1

2

The artifact org.apache:apache:pom:21 is not a JAR artifact instead it is a POM artifact which can be used as a parent for you maven module or can be used in the depencyManagement section.

If you add a POM artifact as normal dependency maven will try to download the jar file for the artifact but it doesn't exist thus the error.

To add as a parent

<parent>
    <groupId>org.apache</groupId>
    <artifactId>apache</artifactId>
    <version>21</version>
</parent>

To add it in the dependencyManagement

<dependencyManagement>
  <dependencies>
    <dependency>
      <groupId>org.apache</groupId>
      <artifactId>apache</artifactId>
      <version>21</version>
      <scope>import</scope>
    </dependency>
 </dependencies>
</dependencyManagement>

If you want to org.apache.commons.compress.utils.ByteUtils then you have to add the following dependency.

<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-compress</artifactId>
    <version>1.18</version>
</dependency>
Sign up to request clarification or add additional context in comments.

7 Comments

Are you sure. I cannot find where is this ByteUtils coming from.
@BastienVandamme your code do not have the class referred. Could you please tell the full class with the package.
@BastienVandamme if you want to use org.apache.commons.compress.utils.ByteUtils then you have to add org.apache.commons:commons-compress:jar:1.18 as dependency.
Yes but in comment. org.apache.commons:commons-compress:jar:1.18 How do you know that?
@BastienVandamme I used google and mvnrepository.com to search for the specific artifact contains the class.
|

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.