Класс log4j не найден в сгенерированном банке - PullRequest
0 голосов
/ 02 июля 2018

Я создаю файл jar с плагином maven-assembly-plugin. Я использую java -jar, чтобы выполнить JAR. Я получил сообщение об ошибке:

log4j: WARN JmDNS или serviceInfo не найдены

Я пытался использовать путь к jar в -classpath, но получил ту же ошибку.

Конфигурация плагина:

    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-assembly-plugin</artifactId>
        <version>3.1.0</version>
        <executions>
            <execution>
                <id>make-assembly</id>
                <phase>package</phase>
                <goals>
                    <goal>single</goal>
                </goals>
            </execution>
        </executions>
        <configuration>
            <archive>
                <manifest>
                    <mainClass>test.LeanFTest</mainClass>
                </manifest>
            </archive>
            <finalName>${project.artifactId}-fatjar-${project.version}</finalName>
            <appendAssemblyId>false</appendAssemblyId>
            <descriptors>
                <descriptor>src/main/assembly/leanft-assembly.xml</descriptor>
            </descriptors>
        </configuration>
    </plugin>

1 Ответ

0 голосов
/ 02 июля 2018

Скорее всего, это сводится к:

  • Ваша сборка maven не включает зависимые артефакты в ваш JAR-файл. Другими словами: создаваемый вами JAR не включает в себя JAR logj4. Вы можете изменить это с помощью вашей конфигурации maven, подробности смотрите здесь .
  • Поскольку ваш JAR-файл не содержит зависимостей, все JAR-файлы, от которых вы зависите , должны находиться в вашем пути к классам. Значение: когда вы запускаете новый JAR в командной строке, все элементы , которые могут потребоваться для его запуска , должны присутствовать в пути к классам.
...