У меня есть LeanFT
проект, он работает правильно, когда я запускаю его из IDE. Я сгенерировал файл jar с maven-assembly-plugin
.
<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>
Когда я пытаюсь выполнить его с помощью TestExportTool (для создания XML-файла для импорта ALM), я получаю различные сообщения об ошибках, например:
log4j: WARN JmDNS или serviceInfo не найдены
java.lang.UnsatisfiedLinkError: нет NTEventLogAppender
java.lang.NoClassDefFoundError
Я импортировал все необходимые классы, решил эти проблемы, но TestExportTool
приходит с исключениями снова и снова.
Я добавил эти зависимости, о которых сообщают сообщения об ошибках, но они не используются проектом, поэтому не уверен, почему он запрашивается.
<dependency>
<groupId>org.jmdns</groupId>
<artifactId>jmdns</artifactId>
<version>3.5.1</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.7.25</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-slf4j-impl</artifactId>
<version>2.11.0</version>
</dependency>
<dependency>
<groupId>org.dblock.log4jna</groupId>
<artifactId>log4jna-api</artifactId>
<version>2.0</version>
</dependency>
<dependency>
<groupId>org.yaml</groupId>
<artifactId>snakeyaml</artifactId>
<version>1.21</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
Файл leanft-assembly.xml:
<id>fat-tests</id>
<formats>
<format>jar</format>
</formats>
<includeBaseDirectory>false</includeBaseDirectory>
<dependencySets>
<dependencySet>
<outputDirectory>/</outputDirectory>
<useProjectArtifact>true</useProjectArtifact>
<unpack>true</unpack>
<scope>test</scope>
</dependencySet>
</dependencySets>
<fileSets>
<fileSet>
<directory>${project.build.directory}/test-classes</directory>
<outputDirectory>/</outputDirectory>
<includes>
<include>*.class</include>
</includes>
<useDefaultExcludes>true</useDefaultExcludes>
</fileSet>
</fileSets>
Подробная трассировка стека последнего сообщения об ошибке:
Инструмент экспорта тестов Hewlett-Packard Enterprise LeanFT. [главная] отладка
javax.jmdns.impl.JmDNSImpl - экземпляр JmDNS создан 2018-07-06
11: 17: 21,741 Исключение в потоке "main" java.lang.NoClassDefFoundErr
или: org / apache / tools / ant / taskdefs / LogOutputStream
в java.lang.ClassLoader.defineClass1 (собственный метод)
в java.lang.ClassLoader.defineClass (Неизвестный источник)
в java.security.SecureClassLoader.defineClass (Неизвестный источник)
на java.net.URLClassLoader.defineClass (неизвестный источник)
на java.net.URLClassLoader.access $ 100 (неизвестный источник)
at java.net.URLClassLoader $ 1.run (неизвестный источник)
at java.net.URLClassLoader $ 1.run (неизвестный источник)
at java.security.AccessController.doPrivileged (собственный метод)
на java.net.URLClassLoader.findClass (неизвестный источник)
в java.lang.ClassLoader.loadClass (Неизвестный источник)
в java.lang.ClassLoader.loadClass (Неизвестный источник)
в java.lang.Class.forName0 (собственный метод)
at java.lang.Class.forName (Неизвестный источник)
на com.hp.lft.testexporttool.internal.JarFileLoader.getPublicClassesFrom
JarFile (JarFileLoader.java:48)
на com.hp.lft.testexporttool.internal.TestsExporter.export (TestsExporter
.java: 26)
в com.hp.lft.testexporttool.ExportTests.main (ExportTests.java:41) вызвано
автор: java.lang.ClassNotFoundException:
org.apache.tools.ant.taskdefs.LogOu tputStream
на java.net.URLClassLoader.findClass (неизвестный источник)
в java.lang.ClassLoader.loadClass (Неизвестный источник)
at java.lang.ClassLoader.loadClass (неизвестный источник)
ОБНОВЛЕНИЕ 07.09. :
Я добавил все зависимости, запрошенные TestExportTool. Я получаю следующее сообщение от Hewlett-Packard Enterprise LeanFT Test Export Tool:
[main] DEBUG javax.jmdns.impl.JmDNSImpl - создан экземпляр JmDNS
2018-07-09 13: 25: 17,419 bshpath.BshClassLoader