Перейти к содержимому

Фотография

Сборка Maven проекта в jar файл


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 8

#1 pbezpal

pbezpal

    Активный участник

  • Members
  • PipPip
  • 79 сообщений
  • ФИО:Безпалько Павел

Отправлено 24 июня 2019 - 09:43

Всем привет!

 

Пытаюсь собрать Maven в jar файл средствами Intellij Idea. В интернете пишут, что нужно всего лишь сделать структуру pom.xml файла нужную и всё заработает. У меня 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>TestITPhoneClient</groupId>
<artifactId>ru.minicom</artifactId>
<packaging>jar</packaging>
<version>1.0</version>
<name>TestITPhoneClient</name>
<url>http://maven.apache.org</url>

<dependencies>
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>3.141.59</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.13-beta-1</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.sikulix/sikulixapi -->
<dependency>
<groupId>com.sikulix</groupId>
<artifactId>sikulixapi</artifactId>
<version>1.1.2</version>
</dependency>
</dependencies>

<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>3.1.2</version>
<configuration>
<archive>
<manifest>
<mainClass>TestClass</mainClass>
</manifest>
</archive>
</configuration>
</plugin>
</plugins>
</build>

</project>

При сборке никак не хочет появляться jar файл в директории target. В чём ошибка?

Прикрепленные файлы


  • 0

#2 checo

checo

    Опытный участник

  • Members
  • PipPipPipPip
  • 400 сообщений
  • Город:Н.Новгород

Отправлено 24 июня 2019 - 13:38

Что такое "при сборке"? Таргет какой вызываете? (по логу не видно).

Idea, может быть, просто compile делает, а надо package.


  • 0

#3 pbezpal

pbezpal

    Активный участник

  • Members
  • PipPip
  • 79 сообщений
  • ФИО:Безпалько Павел

Отправлено 25 июня 2019 - 12:36

Получилось собрать проект в jar

 

http://forum.vingrad...pic-394115.html

 

Только теперь при запуске ругается

 

D:\Project\ITPhone_Firelink\ver.8.0\Tests\ClientTest>java -jar target\ru.minicom-1.0.jar
Error: Could not find or load main class mypackage.TestClass

Что нужно указывать вместо mypackage?


  • 0

#4 pbezpal

pbezpal

    Активный участник

  • Members
  • PipPip
  • 79 сообщений
  • ФИО:Безпалько Павел

Отправлено 25 июня 2019 - 13:57

Вроде разобрался что нужно писать.

package ru.minicom.itphone.client;

import org.junit.runner.JUnitCore;
import org.junit.runner.Result;
import org.junit.runner.notification.Failure;

public class RunTests {
public static void main(String[] args){
Result result = JUnitCore.runClasses(LoginPageTest.class);

System.out.println("Total number of tests " + result.getRunCount());

System.out.println("Total number of test failed " + result.getFailureCount());

for(Failure failure : result.getFailures()){
System.out.println(failure.getMessage());
}

System.out.println(result.wasSuccessful());
}
}

В pom.xml пописал

<configuration>
<archive>
<manifest>
<mainClass>ru.minicom.itphone.client.RunTests</mainClass>
</manifest>
</archive>
</configuration>

Но при компиляции теперь ругается 

 

D:\Project\ITPhone_Firelink\ver.8.0\Tests\ClientTest>mvn compile
[INFO] Scanning for projects...
[INFO]
[INFO] ------------< TestITPhoneClient:ru.minicom.itphone.client >-------------
[INFO] Building TestITPhoneClient 1.0
[INFO] --------------------------------[ jar ]---------------------------------
[INFO]
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ ru.minicom.itphone.client ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Copying 10 resources
[INFO]
[INFO] --- maven-compiler-plugin:3.8.1:compile (default-compile) @ ru.minicom.itphone.client ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 5 source files to D:\Project\ITPhone_Firelink\ver.8.0\Tests\ClientTest\target\classes
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  1.158 s
[INFO] Finished at: 2019-06-25T16:53:34+03:00
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.1:compile (default-compile) on project ru.minicom.itphone.client: Fatal error compiling: invalid flag: --release -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException

  • 0

#5 checo

checo

    Опытный участник

  • Members
  • PipPipPipPip
  • 400 сообщений
  • Город:Н.Новгород

Отправлено 25 июня 2019 - 14:41

Этого всего писать не нужно. Maven сам умеет запускать тесты и подсчитывать результаты.

Если честно, пытался вспомнить, когда и где я его начинал изучать, но не вспомнил. Явно не по документации - она слишком мутная для начального этапа.

Ищите в сети уроки и статьи по ключевым словам "maven surefire junit" - их там много.


  • 0

#6 pbezpal

pbezpal

    Активный участник

  • Members
  • PipPip
  • 79 сообщений
  • ФИО:Безпалько Павел

Отправлено 26 июня 2019 - 08:52

С 100500 раза получилось собрать jar файл, но всё равно он не запускается(((

 

получился такой 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>TestITPhoneClient</groupId>
<artifactId>ru.minicom.itphone.client</artifactId>
<version>1.0</version>
<name>TestITPhoneClient</name>
<url>http://maven.apache.org</url>

<properties>
<!--region General-->
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<!--<java.version>11</java.version>-->
<java.version>11</java.version>
<!--endregion-->
<!--region Libs -->
<selenium-java.version>3.141.59</selenium-java.version>
<sikulixapi.version>1.1.2</sikulixapi.version>
<jadb.version>94ebf38</jadb.version>
<junit.version>4.13-beta-1</junit.version>
<!--endregion-->
<!--region Plugins-->
<maven-compiler-plugin.version>3.8.1</maven-compiler-plugin.version>
<maven.compiler.release>${java.version}</maven.compiler.release><!-- for compiler plugin version >= 3.8 -->
<maven.compiler.parameters>true</maven.compiler.parameters>
<maven-jar-plugin.version>3.1.2</maven-jar-plugin.version>
<!--endregion-->
</properties>
<repositories>
<repository>
<id>Mulesoft</id>
<url>https://repository.mulesoft.org/nexus/content/repositories/public</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>${selenium-java.version}</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>${junit.version}</version>
</dependency>
<dependency><!-- https://mvnrepository.com/artifact/com.sikulix/sikulixapi -->
<groupId>com.sikulix</groupId>
<artifactId>sikulixapi</artifactId>
<version>${sikulixapi.version}</version>
<exclusions>
<exclusion>
<groupId>com.github.vidstige</groupId>
<artifactId>jadb</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>com.github.vidstige</groupId>
<artifactId>jadb</artifactId>
<version>${jadb.version}</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.maven.surefire/surefire-junit4 -->
<dependency>
<groupId>org.apache.maven.surefire</groupId>
<artifactId>surefire-junit4</artifactId>
<version>3.0.0-M3</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>${maven-compiler-plugin.version}</version>
</plugin>
<plugin>
<artifactId>maven-jar-plugin</artifactId>
<version>${maven-jar-plugin.version}</version>
<configuration>
<archive>
<manifest>
<mainClass>ru.minicom.itphone.client.RunTests</mainClass>
</manifest>
</archive>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>3.0.0-M3</version>
<configuration>
<includes>
<include>**\LoginPageTest.java</include>
</includes>
<excludes>
<exclude>**\MainPageTest.java</exclude>
</excludes>
</configuration>
</plugin>
</plugins>
</build>

</project>

Класс RunTest

package ru.minicom.itphone.client;

import org.junit.runner.JUnitCore;
import org.junit.runner.Result;
import org.junit.runner.notification.Failure;

public class RunTests {
public static void main(String[] args){
Result result = JUnitCore.runClasses(LoginPageTest.class);

System.out.println("Total number of tests " + result.getRunCount());

System.out.println("Total number of test failed " + result.getFailureCount());

for(Failure failure : result.getFailures()){
System.out.println(failure.getMessage());
}

System.out.println(result.wasSuccessful());
}
}

И сам проект. После сборки проекта получается файл ru.minicom.itphone.client-1.0.jar. Когда его запускаю, ругается 

 

D:\Project\ITPhone_Firelink\ver.8.0\Tests\ClientTest>java -jar target\ru.minicom.itphone.client-1.0.jar
Error: Could not find or load main class ru.minicom.itphone.client.RunTests

Может дело в том, что класс RunTests находится в директории test?

 

Прикрепленные файлы

  • Прикрепленный файл  structure.jpg   62,43К   0 Количество загрузок:

  • 0

#7 pbezpal

pbezpal

    Активный участник

  • Members
  • PipPip
  • 79 сообщений
  • ФИО:Безпалько Павел

Отправлено 26 июня 2019 - 08:53

Кстати нашёл неплохое описание для сборки maven

 

http://java-online.r...surefire-plugin


  • 0

#8 checo

checo

    Опытный участник

  • Members
  • PipPipPipPip
  • 400 сообщений
  • Город:Н.Новгород

Отправлено 26 июня 2019 - 09:30

 

но всё равно он не запускается(((

И снова, этого делать не нужно. Тесты, собранные с помощью мавена, запускать предполагается с помощью мавена, а не из джарника. По вашей же ссылке всё написано.


  • 0

#9 pbezpal

pbezpal

    Активный участник

  • Members
  • PipPip
  • 79 сообщений
  • ФИО:Безпалько Павел

Отправлено 26 июня 2019 - 09:48

понятно) Значит собирать jar файл не нужно?


  • 0


Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных