У меня проблема с мавеном.Я включил зависимость как таковую в свой pom.xml:
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-csv</artifactId>
<version>1.6</version>
</dependency>
Я использую Intellij в качестве IDE, и я не получаю там никаких предупреждений компиляции или чего-либо еще.Я использую командную строку для запуска команд maven и могу без проблем запускать mvn install
compile
package
.
Однако, когда я пытаюсь запустить jar как таковой:
java -cp target/stride-1.0-SNAPSHOT.jar com.myapp.maven.App
Я получаю эту ошибку:
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/csv/CSVFormat
at com.stride.maven.App.parseCsv(App.java:43)
at com.stride.maven.App.main(App.java:25)
Caused by: java.lang.ClassNotFoundException: org.apache.commons.csv.CSVFormat
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
Очевидно, Maven не может найти этот путь.Я попытался удалить .m2, перестроить и, в основном, все, что нашел в stackoverflow, но не могу найти проблему или получить представление о проблеме.Обратите внимание, в моем Intellij я вижу зависимость во внешних библиотеках.
Я также пытался использовать shade для копирования зависимостей в jar:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<shadedArtifactAttached>true</shadedArtifactAttached>
<transformers>
<transformer implementation=
"org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<mainClass>com.myapp.maven.App</mainClass>
</transformer>
</transformers>
</configuration>
</execution>
</executions>
</plugin>
После чего я перезапускаю mvn clean install package и затем мою команду build.Не повезло.
Я также попробовал подключаемый модуль Maven Assembly.Угадайте, что, не повезло!
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
<configuration>
<archive>
<manifest>
<mainClass>
com.myapp.maven.App
</mainClass>
</manifest>
</archive>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
</execution>
</executions>
</plugin>
Я подтвердил, что зависимости даже не встраиваются.
Спасибо!