Maven не создает запись главного класса в MANIFEST.MF - PullRequest
0 голосов
/ 02 мая 2019

Я пытаюсь построить проект на Java, который должен запускаться при двойном щелчке.Это не сработало, поэтому я отладил с помощью cmd, и в манифесте не было записи основного класса.

Поэтому я добавил содержание этого ответа (принятого в мое приложение): Отсутствует атрибут Main-Class вMANIFEST.MF в сгенерированном Maven файле jar

Я использую jenkins в качестве платформы сборки и попытался выполнить с помощью mvn clean install и mvn clean package.

pom.xml:

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>de.progii</groupId>
  <artifactId>pong</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>jar</packaging>

  <name>pong</name>
  <url>http://maven.apache.org</url>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  </properties>

  <build>
    <plugins>
      <plugin>
        <artifactId>maven-jar-plugin</artifactId>
        <version>3.1.1</version>
        <configuration>
          <archive>
            <manifest>
              <addClasspath>true</addClasspath>
              <mainClass>de.progii.pong.App</mainClass>
            </manifest>
          </archive>
        </configuration>
      </plugin>
    </plugins>
  </build>

  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
  </dependencies>
</project>

1 Ответ

0 голосов
/ 06 мая 2019

Я частично исправил проблему.Проблема не в плагине maven jar, а в его jenkins.Он просто архивирует неправильную сборку.Артефакт, доступный для загрузки, кажется, заархивирован до того, как плагин maven jar выполнит свою работу.Если я подключусь с помощью sftp к рабочей / целевой папке, я могу загрузить артефакт с тем же именем, что и артефакт, на странице загрузки jenkins, но выполнить его успешно!

edit

С последним обновлениемчтобы Дженкинс работал правильно

...