Я работаю с Maven / TestNG / Log4j2.
Наша цель - создать исполняемый файл .jar, который будет запускать testng.xml через файл pom.xml.
Так что сейчас я могу создать исполняемый файл .jar и успешно запустить его и на моей машине. Но когда я пытаюсь запустить тот же файл .jar на другом компьютере, он выдает «Filenotfoundexception», когда пытается получить доступ к testng.xml и log4j2.xml по моему локальному пути.
Кроме того, исполняемый файл .Jar содержит только файлы testng.xml и log4j2.xml только на корневом уровне.
Вот моя структура проекта:
Я использовал «сборку maven, верные плагины, плагины компилятора» и тег ресурсов для XML-файлов.
Вот так выглядит моя сборка:
<build>
<sourceDirectory>src</sourceDirectory>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.7.0</version>
<configuration>
<release>10</release>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>3.1.1</version>
<executions>
<execution>
<id>make-assembly</id>
<!-- bind to the packaging phase -->
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
<configuration>
<!-- get all project dependencies -->
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
<!-- MainClass in mainfest make a executable jar -->
<archive>
<manifest>
<mainClass>test.FirstTest</mainClass>
</manifest>
</archive>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>3.0.0-M3</version>
<configuration>
<suiteXmlFiles>
<suiteXmlFile>.//src/main/java/resources/testng.xml</suiteXmlFile>
</suiteXmlFiles>
</configuration>
</plugin>
</plugins>
<resources>
<resource>
<directory>src/main/java/resources</directory>
<includes>
<include>*.xml</include>
</includes>
</resource>
</resources>
</build>
А вот так выглядит мой основной метод testNG:
public static void main(String[] args) {
TestNG testng = new TestNG();
List<String> suites = Lists.newArrayList();
suites.add(".//src/main/java/resources/testng.xml");
testng.setTestSuites(suites);
testng.run();
}
Мы стремимся создать исполняемый файл .jar в комплекте с testng.xml и log4j2.xml. Так что мы можем поделиться этим и с другими командами.
Пожалуйста, дайте мне знать, если вам нужна дополнительная информация.