t.me/atinfo_chat Telegram группа по автоматизации тестирования

Could not find or load main class\no main manifest attribute. Сборка maven проекта в jar

Теги: #<Tag:0x00007f7487b582d8> #<Tag:0x00007f7487b58210> #<Tag:0x00007f7487b58120>

Всем привет!
На проекте попросили обернуть все автотесты в exe’шник. В итоге сделал jar с простеньким интерфейсом, где каждый тест запускался по своей кнопке. В какой-то момент, у меня начались проблемы с build artifact. Структуру проекта не менял, вроде ничего такого не делал, а работать перестало.
Сам jar’ник собирается, но весит в два раза меньше предыдущих. Если открыть его как архив, то видно, что в нем нет основных директорий проекта.

Есть только одна с мэин классом,

И то в нем значительно меньше классов.
В файле Манифест Мэин класс загорелся красным.
Как не крутил, менял pom.xml, пересобирал проект, запускал в eclipse и netbeans - ничего не помогает.
В Eclipse мэин класс есть, но при создании ошибка - на каждый из классов(Не удается найти указанный файл)
В netbeans он вообще не видит мэин класс. В netbeans есть возможность в пропертиз проекта, в настройках запуска, указать свою конфигурацию и насильно указать мэин класс. В таком случае, при запуске, он как и idea пишет, no main manifest attribute, in или Error: Could not find or load main class

Спустя день в обнимку с гуглом, понял, что у мавен проекта есть две основные директории
image
Синяя - sources root и зеленая - Test sources root. Поскольку изначально делал автотесты, все было в зеленной папке тк в синей все силениумовские и джиюнитовские пакеты не проходят.

Но именно для сборки jar(build arifact ->jar) - мэин класс должен находится в синей папке для правильной работы манифест файла.
Вообщем все перепробовал, уже не знаю что сделать, что бы все вернуть как было

Без показанного пома вам не помогут.

Понимаю, засрал его я очень сильно. Но это только в процессе поиска проблемы. Изначально все было правильней

<?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>MavenTest</groupId>
    <artifactId>MavenTest</artifactId>
    <version>1.0-SNAPSHOT</version>
    <build>







        <plugins>


            <!--Maven-assembly -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-assembly-plugin</artifactId>
                <version>2.3</version>
                <executions>
                    <execution>
                        <phase>package</phase>
                        <goals>
                            <goal>single</goal>
                        </goals>
                    </execution>
                </executions>
                <configuration>
                    <descriptor>src/main/assembly/bin.xml</descriptor>
                </configuration>
            </plugin>


            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                </configuration>
            </plugin>


            <!-- Maven JAR Plugin -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-jar-plugin</artifactId>
                <version>2.4</version>
                <configuration>
                    <archive>
                        <manifest>
                            <addClasspath>true</addClasspath>
                            <classpathPrefix>lib</classpathPrefix>
                            <mainClass>testgui.CreateGUI</mainClass>
                        </manifest>
                    </archive>
                </configuration>
            </plugin>

            <!--            <plugin>-->
            <!--                <groupId>org.apache.maven.plugins</groupId>-->
            <!--                <artifactId>maven-jar-plugin</artifactId>-->
            <!--                <configuration>-->
            <!--                    <archive>-->
            <!--                        <addMavenDescriptor>false</addMavenDescriptor>-->
            <!--                        <compress>true</compress>-->
            <!--                        <manifest>-->
            <!--                            <addClasspath>true</addClasspath>-->
            <!--                            <classpathPrefix>libs/</classpathPrefix>-->
            <!--                            <mainClass>a1s.testGui.CreateGui</mainClass>-->
            <!--                        </manifest>-->
            <!--                    </archive>-->
            <!--                </configuration>-->
            <!--                <version>2.4</version>-->
            <!--            </plugin>-->

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>2.8.1</version>
                <executions>
                    <execution>
                        <id>run-integration-tests</id>
                        <phase>integration-test</phase>
                        <goals>
                            <goal>test</goal>
                        </goals>
                        <configuration>
                            <groups>integration</groups>
                            <parallel>classes</parallel>
                            <threadCount>2</threadCount>
                        </configuration>
                    </execution>
                </executions>
            </plugin>

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>10</source>
                    <target>10</target>
                </configuration>
            </plugin>
        </plugins>
    </build>


    <properties>
        <maven.compiler.version>1.8</maven.compiler.version>
        <project.encode>UTF-8</project.encode>
        <aspectj.version>1.9.1</aspectj.version>

        <junit.version>4.12</junit.version>
        <selenium-java.version>3.141.59</selenium-java.version>

        <allure-junit4.version>2.12.1</allure-junit4.version>
        <allure-maven.version>2.10.0</allure-maven.version>
        <reportVersion>2.12.1</reportVersion>

        <maven-surefire-plugin.version>2.22.0</maven-surefire-plugin.version>
        <maven.compiler.source>${maven.compiler.version}</maven.compiler.source>
        <maven.compiler.target>${maven.compiler.version}</maven.compiler.target>
        <project.build.sourceEncoding>${project.encode}</project.build.sourceEncoding>
        <project.reporting.outputEncoding>${project.encode}</project.reporting.outputEncoding>

        <spring.version>5.1.7.RELEASE</spring.version>
    </properties>
    <dependencies>
        <!-- Jsoup -->
        <dependency>
            <groupId>org.jsoup</groupId>
            <artifactId>jsoup</artifactId>
            <version>1.11.3</version>
        </dependency>
        <!-- Spring -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-core</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-test</artifactId>
            <version>${spring.version}</version>
        </dependency>


        <dependency>
            <groupId>org.seleniumhq.selenium</groupId>
            <artifactId>selenium-server</artifactId>
            <version>3.0.1</version>
        </dependency>

        <dependency>
            <groupId>org.testng</groupId>
            <artifactId>testng</artifactId>
            <version>6.8</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>net.sourceforge.htmlunit</groupId>
            <artifactId>htmlunit</artifactId>
            <version>2.23</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>com.google.code.gson</groupId>
            <artifactId>gson</artifactId>
        </dependency>

        <dependency>
            <groupId>com.google.code.gson</groupId>
            <artifactId>gson</artifactId>
            <!--suppress UnresolvedMavenProperty -->
            <version>2.3</version>
        </dependency>


        <dependency>
            <groupId>com.launchdarkly</groupId>
            <artifactId>launchdarkly-client</artifactId>
            <!-- Don't upgrade to version 2.3.4 until LaunchDarkly re-includes the gson libarary in their shaded jar -->
            <!-- https://github.com/launchdarkly/java-client/issues/105 -->
            <version>2.3.3</version>
            <!-- added for dependency convergence -->
            <exclusions>
                <!-- com.amazonaws:aws-java-sdk-core specifies joda-time -->
                <exclusion>
                    <groupId>joda-time</groupId>
                    <artifactId>joda-time</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.apache.maven</groupId>
            <artifactId>maven-model</artifactId>
            <version>3.0.5</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.seleniumhq.selenium</groupId>
            <artifactId>selenium-api</artifactId>
            <version>3.141.59</version>
            <scope>test</scope>
        </dependency>

        <dependency>
            <groupId>org.apache.maven</groupId>
            <artifactId>maven-model</artifactId>
            <version>3.0.5</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.apache.maven</groupId>
            <artifactId>maven-profile</artifactId>
            <version>2.0.9</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.apache.maven</groupId>
            <artifactId>maven-settings</artifactId>
            <version>3.0</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.w3c.css</groupId>
            <artifactId>sac</artifactId>
            <version>1.3</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.seleniumhq.selenium</groupId>
            <artifactId>selenium-api</artifactId>
            <version>3.141.59</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.seleniumhq.selenium</groupId>
            <artifactId>selenium-remote-driver</artifactId>
            <version>3.141.59</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>com.google.guava</groupId>
            <artifactId>guava</artifactId>
            <version>25.0-jre</version>
            <scope>test</scope>
        </dependency>

        <dependency>
            <groupId>org.seleniumhq.selenium</groupId>
            <artifactId>selenium-support</artifactId>
            <version>3.14.0</version>
            <scope>test</scope>
        </dependency>

        <!--        <dependency>-->
        <!--            <groupId>org.testng</groupId>-->
        <!--            <artifactId>testng</artifactId>-->
        <!--            <version>7.0.0-beta1</version>-->
        <!--            <scope>test</scope>-->
        <!--        </dependency>-->
        <dependency>
            <groupId>org.seleniumhq.selenium</groupId>
            <artifactId>selenium-chrome-driver</artifactId>
            <version>3.141.59</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>com.squareup.okio</groupId>
            <artifactId>okio</artifactId>
            <version>1.14.1</version>
            <scope>test</scope>
        </dependency>
        <!--        <dependency>-->
        <!--            <groupId>org.testng</groupId>-->
        <!--            <artifactId>testng</artifactId>-->
        <!--            <version>7.0.0-beta1</version>-->
        <!--            <scope>test</scope>-->
        <!--        </dependency>-->
        <dependency>
            <groupId>com.github.2gis.winium</groupId>
            <artifactId>winium-elements-desktop</artifactId>
            <version>0.2.0-1</version>
        </dependency>
        <dependency>
            <groupId>org.junit.jupiter</groupId>
            <artifactId>junit-jupiter-params</artifactId>
            <version>5.6.1</version>
        </dependency>
    </dependencies>



</project>