Эй, поэтому я работал над проектом, который я хочу запустить в качестве исполняемого банку из командной строки. Я смог создать банку с зависимостями, используя Mavens assembly: single command. Мой pom выглядит так.Проблемы с исполняемым банком с зависимостями
<build>
<plugins>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.3</version>
<configuration>
<archive>
<manifest>
<mainClass>org.openmetadata.main.OmadUpdate</mainClass>
</manifest>
</archive>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
</plugin>
</plugins>
</build>
Сборки успешно и создает банку ОМАД-обновление-0.0.1-SNAPSHOT-банку-с-dependencies.jar. Я иду в проектах целевой папку в командной строке и введите
java -jar omad-update-0.0.1-SNAPSHOT-jar-with-dependencies.jar
Я также попытался
java -cp omad-update-0.0.1-SNAPSHOT-jar-with-dependencies.jar org.openmetadata.main.OmadUpdate
К сожалению, в каждом конкретном случае мне дает java.lang.NoClassDefFoundError: орг/openmetadata/основным/OmadUpdate. Я смущен, потому что знаю, что мой основной класс находится в пакете org.openmetadata.main, и все же он не найден. Я считаю это особенно запутанным, потому что в моем pom я указываю этот класс как мой основной класс. Я попытался изменить имя основного класса на src.main.java.org.openmetadata.main.OmadUpdate и просто OmadUpdate, но ни один из них не имеет эффекта. Спасибо за любую помощь заранее.
но в соответствии с этой страницей [link] (http://maven.apache.org/plugins/maven-assembly-plugin/usage.html#aResources), похоже, что я должен указать путь к классам, похоже он будет просто упаковывать зависимости maven по мере необходимости. Я предполагаю, что могу ошибаться, полагая, что все-таки. – decal
Откройте файл jar и найдите файл MANIFEST.MF в каталоге META-INF. Указывается ли путь к классам? – Mike
Хорошо, поэтому я нашел на Mavens [сайт] (http://maven.apache.org/shared/maven-archiver/examples/classpath.html#aMake), добавляющий true addClasspath> в мой pom.xml должен позаботиться о пути classpath. Однако у меня все еще возникает проблема, связанная с тем, что мой основной класс не может быть найден, когда я пытаюсь запустить исполняемый банку. –
decal