Подтвердить что ты не робот

Строительная баночка с maven- scala -plugin

Я создал приложение scala, и теперь я хочу создать банку. Я запускаю mvn package, чем пытаюсь запустить jar командой

java -jar target/burner-1.0-SNAPSHOT.jar

и я вижу ошибку:

Failed to load Main-Class manifest attribute from

Как определить свойство Main-Class? Нужно ли создавать Manifest.mf? где? Или мне нужно иметь свойство mainclass где-нибудь в pom.xml?

Update: Я создал файл src/main/resources/MANIFEST.MF с содержимым

Manifest-Version: 1.0
Archiver-Version: Plexus Archiver
Created-By: Apache Maven
Built-By: itsabear
Main-Class: ru.dmteam.App
Build-Jdk: 1.6.0_20

Я не забыл строку, заканчивающуюся в конце файла. после mvn package Я вижу новую банку. Я проверил manifest.mf в этом банке - он содержит правильный основной класс, но когда я набираю java -jar target/burner-1.0-SNAPSHOT.jar, я все еще вижу ошибку Failed to load Main-Class manifest attribute from

Мой pom.xml http://pastie.org/1070483

ОБНОВЛЕНИЕ 2 Я обнаружил, что теперь в банке есть два файла manifest.mf. MANIFEST.MF и META-INF/MANIFEST.MF Я переместил свой пользовательский файл MANIFEST.MF только что созданную папку META-INF (в src/main/resources), но теперь mvn package переопределяет ее при создании jar...

4b9b3361

Ответ 1

После создания нового проекта maven с использованием scala -archetype-простого архетипа (простой проект, который печатает "Hello World" ), мне нужно было добавить следующее в pom.xml

   <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-assembly-plugin</artifactId>
    <version>2.2-beta-5</version>
    <configuration>
      <descriptorRefs>
        <descriptorRef>jar-with-dependencies</descriptorRef>
      </descriptorRefs>
      <archive>
        <manifest>
          <mainClass>test.App</mainClass>
        </manifest>
      </archive>
    </configuration>
    <executions>
      <execution>
        <phase>package</phase>
        <goals>
          <goal>single</goal>
        </goals>
      </execution>
    </executions>
  </plugin>

для класса test.App для запуска по желанию при вызове с помощью команды

java -jar ./target/mytest-1.0-SNAPSHOT-jar-with-dependencies.jar

После выполнения команды

mvn package

Ответ 2

вы можете запустить банку таким образом

scala -cp target/projectname-1.0-SNAPSHOT.jar