У меня есть простая Java-программа, которая отправляет строку в AWS SNS.Когда я запускаю приложение через отладчик, сообщение отправляется правильно, поэтому я полагаю, что все ссылки на AWS и т. Д. Все в порядке.
Если я создаю приложение, используя Maven для создания JAR, сборка завершается успешноно я получаю ошибку java.lang.NoClassDefFoundError: com / amazonaws / services / sns / AmazonSNSClientBuilder, когда я пытаюсь выполнить JAR.
Ссылка на Java 1.8 и Maven 3.6.0, вывод ниже через mvn -v
Apache Maven 3.6.0 (97c98ec64a1fdfee7767ce5ffb20918da4f719f3; 2018-10-25T05: 41: 47 + 11: 00) Maven home: /Users/skilic/dev/apache-maven-3.6.0 Java-версия:1.8.0_202, поставщик: Oracle Corporation, среда выполнения: /Library/Java/JavaVirtualMachines/jdk1.8.0_202.jdk/Contents/Home/jre Язык по умолчанию: en_AU, кодировка платформы: UTF-8 Имя ОС: "mac os x",версия: "10.14.4", arch: "x86_64", семейство: "mac"
Вот объявление зависимости в pom.xml
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-java-sdk-bom</artifactId>
<version>1.11.327</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-java-sdk-sns</artifactId>
<version>1.11.534</version>
</dependency>
Когда я выполняю java -jar target / uber-jar.jar Я получаю:
Administrators-MacBook-Pro: SNS skilic $ java -jar target / uber-jar.jar Привет, мир!Исключение в потоке "main" java.lang.NoClassDefFoundError: com / amazonaws / services / sns / AmazonSNSClientBuilder в mvnGroup.App.main (App.java:20). Вызвано: java.lang.ClassNotFoundException: com.amazonaws.services.sns.AmazonSNSClientBuilder на java.net.URLClassLoader.findClass (URLClassLoader.java:382) на java.lang.ClassLoader.loadClass (ClassLoader.java:424) на sun.misc.Launcher $ AppClassLoader.loadClass: Launcher.java.lang.ClassLoader.loadClass (ClassLoader.java:357) ... еще 1