Ошибка: не удалось найти или загрузить основной класс в проекте Maven - PullRequest
0 голосов
/ 20 мая 2018

У меня странная проблема. Я получаю сообщение «Ошибка: не удалось найти или загрузить основной класс» в основной программе hello world в моем проекте maven всякий раз, когда я добавляю selenium 3x jar файлы в pom.xml Нет такой проблемы в 2,53 файлах селена jar или добавления каких-либо других зависимостей.Эта проблема возникает только при добавлении только этой конкретной банки.Я использую марш Eclipse (Oxygen).Версия Java в системе "1.8.0_102"

public class hello2 {

    public static void main(String[] args) {
        System.out.println("hello");
    }
}

Мои maven зависимости

<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>com.test</groupId>
  <artifactId>test</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <dependencies>
   <!-- https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-java -->
<dependency>
    <groupId>org.seleniumhq.selenium</groupId>
    <artifactId>selenium-java</artifactId>
    <version>3.5.3</version>
</dependency>

  </dependencies>
</project>

проблемы

Ответы [ 2 ]

0 голосов
/ 21 мая 2018

Из вашего вопроса не понятно, зачем вам нужны селеновые 3x банки , поскольку ваш код не требует селеновых банок .Более того, ошибки в деталях помогли бы нам улучшить вашу проблему.

Однако 2 (две) проблемы довольно очевидны следующим образом:

  • Вы используете JDK 1.8.0_102 , что довольнодревний.
  • Вы используете org.seleniumhq.selenium v ​​3.5.3 , который довольно стар.
  • Из снимка кажется, возможно, .m2 /хранилище повреждено из-за присутствия нескольких банок из хранилища Selenium 2.53 и Selenium 3.5.3 .

Solution

  • Обновление JDK до последних уровней JDK 8u171 .
  • Если у вас нет никакой зависимости от Selenium полностью удалите зависимость селеновый сосуд .
  • Если у вас есть зависимость от Selenium , добавьте самую последнюю зависимость selenium следующим образом:

    <dependency>
        <groupId>org.seleniumhq.selenium</groupId>
        <artifactId>selenium-server</artifactId>
        <version>3.12.0</version>
    </dependency>  
    
  • Если .m2 / репозиторий поврежден delete .m2 подкаталогполностью.

  • Из консоли выполните: mvn clean (чтобы стереть предыдущие зависимости)
  • Из консоли выполните: mvn install (чтобы установить необходимые зависимости)
  • Из консоли выполните:mvn test (для выполнения вашей программы)
0 голосов
/ 21 мая 2018

Я не уверен, является ли это реальной причиной проблемы, но для того, чтобы maven добавил информацию о главном классе в манифест jar, вы должны явно указать maven для этого.Я использую maven-assembly-plugin для этого.Он упаковывает все зависимости и мой код в один работающий jar:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-assembly-plugin</artifactId>
    <version>2.6</version>
    <configuration>
        <archive>
            <manifest>
                <addDefaultImplementationEntries>true</addDefaultImplementationEntries>
                <addDefaultSpecificationEntries>true</addDefaultSpecificationEntries>
                <mainClass>com.example.package.MainClass</mainClass>
            </manifest>
        </archive>
        <descriptorRefs>
            <descriptorRef>jar-with-dependencies</descriptorRef>
        </descriptorRefs>
    </configuration>
</plugin>
...