1

Добавили несколько основных классов в банке, используя следующий код в pom.xml следующимЗапуск .jar файл, имеющий несколько основных классов с использованием командной строки

<groupId>com.test</groupId> 
     <artifactId>indexer</artifactId> 
     <version>1.0.0-SNAPSHOT</version> 

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-shade-plugin</artifactId> 
    <version>2.4.1</version> 
    <executions> 
     <execution> 
      <phase>package</phase> 
      <id>build-first</id> 
      <goals> 
       <goal>shade</goal> 
      </goals> 
      <configuration> 
       <transformers> 
        <transformer 
         implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer"> 
         <mainClass>com.test1</mainClass> 
        </transformer> 
       </transformers> 
       <finalName>first-runnable</finalName> 
      </configuration> 
     </execution> 
     <execution> 
      <phase>package</phase> 
      <id>build-second</id> 
      <goals> 
       <goal>shade</goal> 
      </goals> 
      <configuration> 
       <transformers> 
        <transformer 
         implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer"> 
         <mainClass>com.test2</mainClass> 
        </transformer> 
       </transformers> 
       <finalName>second-runnable</finalName> 
      </configuration> 
     </execution> 
    </executions> 
</plugin> 

Но не удалось успешно запустить файл фляги из командной строки. Пробовал с помощью командной строки, как
Java -jar индексатор-1.0.0-SNAPSHOT.jar не com.test1 но получить не главный атрибут манифеста, в индексатор-1.0.0-SNAPSHOT.jar

Могли любой, пожалуйста, расскажите, как запустить основные классы из командной строки, используя эту банку.

Благодаря

+0

Я думаю, что это поможет HTTP : //stackoverflow.com/questions/3976514/multiple-runnable-classes-inside-jar-how-to-run-them – bmavus

+0

Спасибо bmavus. Я не могу использовать команду java -cp, указанную как решение там, так как в пути к классам есть много файлов jar, которые должны быть указаны в командной строке. Раньше, если только один файл основного класса в jar мог быть запущен с помощью java -jar indexer-1.0.0-SNAPSHOT.jar. Ищите некоторую команду, которая похожа. – Rehan

+0

Я не уверен и не пробовал это, но вы когда-нибудь пробовали что-то вроде java -cp myjar.jar .MyClass – bmavus

ответ

0

Вы должны запустить полученный артефакт (первый-работоспособный, второй-работоспособный) вместо оригинального. Если вы используете тег, то оригинальный артефакт «finalName» не будет изменен, и новая баночка будет создан, как описано в plugin documentation

Run

java -jar first-runnable.jar com.test1 

или

java -jar second-runnable.jar com.test1