В этом уроке мы покажем вам, как использовать инструмент сборки Maven, плагин One-JAR, для создания одного Jar вместе с зависимыми Jar-файлами в один исполняемый файл Jar, так называемый fat Jar.
Используемые инструменты:
Maven 3.1.1
JDK 1,7
Йода-время 2,5
1. Создайте простой Java-проект
Создайте проект Java из шаблона быстрого запуска Maven.
Обновить pom.xml объявить йодатимские зависимости. Для вывода на Jar формат, убедитесь, что тег упаковки установлен на 'jar'. Прочитайте комментарии для самоочевидных.
$ java -jar dateutils.jar
Exception in thread "main" java.lang.NoClassDefFoundError: org/joda/time/LocalDate
at com.csharpcoderr.core.utils.App.getLocalCurrentDate(App.java:14)
at com.csharpcoderr.core.utils.App.main(App.java:9)
Caused by: java.lang.ClassNotFoundException: org.joda.time.LocalDate
at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
... 2 more
Выше ожидаемое сообщение об ошибке, потому что joda-time.jar пропал, отсутствует.
5. Пример одной банки
Обновить pom.xml чтобы использовать плагин One-Jar, он создаст один Jar вместе с зависимыми Jar-файлами.
Плагин One-Jar помещает зависимости времени выполнения в lib папка, например lib/joda-time-2.5.jar и главный кувшин в main папка, например main/dateutils.jar , Кроме того, он также создает множество классов simontuffs для правильной загрузки включенных Jar-файлов.