java maven make jar: не удалось найти или загрузить основной класс - PullRequest
0 голосов
/ 27 мая 2019

У меня проблема с созданием исполняемого фляги из моего проекта. Я сделал тестовый проект с именем

test_project

есть 1 упаковка

testpack

и публичный класс с моим main ()

TestClass

     package testpack;

import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;

 public class testclass{

    public static void main(String[] args) throws IOException {...}

Я пытался подключить плагины maven-jar-plugin и maven-assembly-plugin просто чтобы увидеть, в чем разница; в обоих случаях у меня та же проблема с

   <plugin>
        <artifactId>maven-assembly-plugin</artifactId>
        <configuration>
            <archive>
                <manifest>
                    <mainClass>testpack.testclass</mainClass>
                </manifest>
            </archive>
            <descriptorRefs>
                <descriptorRef>jar-with-dependencies</descriptorRef>
            </descriptorRefs>
        </configuration>
    </plugin>


        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-jar-plugin</artifactId>
            <version>3.1.2</version>
            <configuration>
                <archive>
                    <manifest>
                        <addClasspath>true</addClasspath>
                        <classpathPrefix>lib/</classpathPrefix>
                        <mainClass>testpack.testclass</mainClass>
                    </manifest>
                </archive>
            </configuration>
        </plugin>

Ошибка: не удалось найти или загрузить основной класс testpack.testclass

да, я прочитал похожий вопрос и мне это не помогло

Я проверил мои переменные env и все пункты шага 1; Я думаю, что я просто не понимаю, как указать мой main () в maven setup

Я не понимаю, где я могу найти эту информацию о моем проекте

<archive>
    <manifest>
      <mainClass>com.domain.project.MainClass</mainClass>
    </manifest>
  </archive>

как правильно указывать на основной класс?

1 Ответ

1 голос
/ 27 мая 2019

Пожалуйста, проверьте ниже использование плагина maven jar. Я написал простую программу Hello World для демонстрации.

<build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.6.1</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-jar-plugin</artifactId>
                <configuration>
                    <archive>
                        <manifest>
                            <mainClass>
                                com.ddlab.rnd.App
                            </mainClass>
                        </manifest>
                    </archive>
                </configuration>
            </plugin>
        </plugins>
    </build>

Если вы хотите проверить полный небольшой исходный код, проверьте эту ссылку на github. https://github.com/debjava/runnableJar

Я не добавил никаких зависимостей пути к классам, если вы хотите, вы можете добавить другие библиотеки, подобные этой.

<addClasspath>true</addClasspath>
<classpathPrefix>you lib dir containing all jar file/</classpathPrefix>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...