0

I'm having trouble understanding what is missing/what to install to be able to compile my code in cmd. It works in IntelliJ IDE, and I've seen a similar question asked, but could not grasp the answer about using "fat jars" and maven dependencies.

ain.java:1: error: package com.googlecode.lanterna.graphics does not exist
import com.googlecode.lanterna.graphics.TextGraphics;
                                       ^
Main.java:2: error: package com.googlecode.lanterna.screen does not exist
import com.googlecode.lanterna.screen.Screen;
                                     ^
Main.java:3: error: package com.googlecode.lanterna.screen does not exist
import com.googlecode.lanterna.screen.TerminalScreen;
                                     ^
Main.java:4: error: package com.googlecode.lanterna.terminal does not exist
import com.googlecode.lanterna.terminal.DefaultTerminalFactory;
                                       ^
Main.java:5: error: package com.googlecode.lanterna.terminal does not exist
import com.googlecode.lanterna.terminal.Terminal;
                                       ^
Main.java:6: error: package com.googlecode.lanterna.terminal.virtual does not exist
import com.googlecode.lanterna.terminal.virtual.DefaultVirtualTerminal;

This is the 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>at.htl</groupId>
    <artifactId>lanternademo</artifactId>
    <version>1.0-SNAPSHOT</version>
    <packaging>jar</packaging>

    <dependencies>
        <dependency>
            <groupId>com.googlecode.lanterna</groupId>
            <artifactId>lanterna</artifactId>
            <version>3.1.1</version>
        </dependency>
    </dependencies>

    <properties>
        <maven.compiler.source>16</maven.compiler.source>
        <maven.compiler.target>16</maven.compiler.target>
    </properties>
    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-shade-plugin</artifactId>
        <version>3.1.0</version>
        <executions>
            <execution>
                <phase>package</phase>
                <goals>
                    <goal>shade</goal>
                </goals>
            </execution>
        </executions>
    </plugin>

</project>

1 Answers1

0

IDE's like IntelliJ do a lot of the compiling and collecting work for you, but by default, compiled classes that use libraries don't compile the libraries they are using. In order to achieve this you would have to use something like jar-with-dependencies for which I would refer you to this thread: How can I create an executable JAR with dependencies using Maven?

Daan Sneep
  • 71
  • 1
  • 5