Зависимост на модула се отнася до един модул, който зависи или изисква друг модул. Модулните зависимости бяха въведени в Деклариране на зависимост от други модули раздел в статията „Разработване на модул с Java 9 в Eclipse IDE, част 1.“ В първата от двете статии, „Използване на зависимости на модули, част 1“, създадохме два Java проекта за два модула, основен модул и модул за зависимост. Не бихме могли да създадем и двата модула в един Java проект, защото Eclipse IDE не поддържа множество модули в един проект. След като създадем два проекта, в тази статия за продължение ще експортираме всеки проект в отделен JAR файл. Експортирането и използването на модул като JAR файл е обсъдено в по-ранен урок „Използване на модул Java 9 като JAR файл“. Добавянето на множество модули в един JAR в момента не се поддържа, но се планира за бъдеща версия на Java. В тази статия ще обсъдим конфигурирането на двата Java проекта и стартирането на основното модулно приложение, за да демонстрираме зависимостта на модула. Тази статия има следните раздели:
- Задаване на пътя за изграждане на основния Java проект
- Експортиране на основния Java проект в JAR файл
- Експортиране на проекта Dependency Java в JAR файл
- Добавяне на конфигурация за изпълнение
- Стартиране на приложението Java на основния модул
- Заключение
Задаване на пътя за изграждане на основния Java проект
Двата Java проекта, разработени по-рано, имат грешки, както е показано с червените маркери на фигура 1. Грешките са посочени, защото двата модула са дефинирани в отделни проекти и проектът на зависимост не е в пътя на изграждане на основния проект.
Фигура 1: Java проекти с грешки
В този раздел ще конфигурираме пътя за изграждане за MainModule проект, за да добавите HelloJavaModule проект към пътя на изграждане. Щракнете с десния бутон върху MainModule в Package Explorer и изберете Build Path>Configure Build Path , както е показано на фигура 2.
Фигура 2: Изследовател на пакети>Път на изграждане>Конфигуриране на път за изграждане
В Свойства прозорец, Пътят за изграждане на Java се показват настройките по подразбиране, както е показано на фигура 3.
Фигура 3: Път на Java Build
Изберете Проекти раздел и изберете Modulepath , както е показано на фигура 4. Щракнете върху Добавяне...
Фигура 4: Път на Java Build>Проекти>Modulepath>Добавяне...
Необходимият избор на проект прозорецът показва проекта на зависимостта HelloJavaModule , както е показано на Фигура 5. Изберете HelloJavaModule проект и щракнете върху OK.
Фигура 5: Избор на проект за добавяне
HelloJavaModule проектът се добавя към Modulepath (виж Фигура 6). Кликнете върху Прилагане и затваряне .
Фигура 6: Java проект HelloJavaModule е добавен към Modulepath
Грешките и червените маркери се премахват от MainModule проект, както е показано на фигура 7.
Фигура 7: Грешки са премахнати от MainModule
Експортиране на основния Java проект в JAR файл
Добавяне на HelloJavaModule проект към пътя за изграждане на MainModule проект премахва само грешките във времето за изграждане/компилиране. За време на изпълнение ще трябва да експортираме всеки от модулите в JAR файл и да добавим JAR файловете към пътя на модула по време на изпълнение, когато проектът се изпълнява. JAR файловете ще трябва да бъдат експортирани в една и съща папка, така че да можем да конфигурираме пътя на модула, без да се позоваваме на модули в проекти. Както бе споменато по-горе, многомодулен JAR все още не се поддържа, но се планира да се поддържа в по-късна версия на Java.
За да експортирате MainModule проект към JAR файл, щракнете с десния бутон върху MainModule в Package Explorer и изберете Експортиране , както е показано на фигура 8.
Фигура 8: Package Explorer>MainModule>Export
В Експортиране прозорец, изберете Java>JAR файл , както е показано на фигура 9, и щракнете върху Напред.
Фигура 9: Експортиране>Java>JAR файл>Напред
В Спецификация на JAR файл , изберете ресурса за експортиране като MainModule , както е показано на фигура 10. Изберете дестинацията за експортиране като MainModulemodulesmainmodule.jar . Щракнете върху Напред.
Фигура 10: Спецификация на JAR файла
Изберете по подразбиране Опции за JAR опаковка (вижте Фигура 11) и щракнете върху Напред.
Фигура 11: Избиране на Опции за опаковане
След това персонализирайте спецификацията на манифеста на JAR , което включва избор на класа на входната точка на приложението. Кликнете върху Преглед за Основния клас , както е показано на Фигура 12.
Фигура 12: Основен клас>Преглед
В Изберете основен клас , изберете MainModule клас в main.module пакет, както е показано на фигура 13, и щракнете върху OK.
Фигура 13: Избиране на основен клас
С Основния клас щракнете върху Готово, както е показано на Фигура 14.
Фигура 14: Експортиране на JAR>Край
mainmodule.jar се експортира в MainModule/modules директория, както е показано в Package Explorer на Фигура 15.
Фигура 15: Експортиран JAR mainmodule.jar
Експортиране на Dependency Java проекта в JAR файл
В този раздел ще експортираме проекта за зависимост HelloJavaModule към JAR файл в същата директория, в която се експортира основният модул JAR. За да експортирате HelloJavaModule проект към JAR файл, щракнете с десния бутон върху проекта в Package Explorer и изберете Експортиране (вижте Фигура 16).
Фигура 16: Изследовател на пакети>HelloJavaModule>Експортиране
В Експортиране прозорец, изберете Java>JAR файл , както е показано на фигура 17, и щракнете върху Напред.
Фигура 17: Експортиране>Java>JAR файл>Напред
В Спецификация на JAR файл , изберете ресурса за експортиране като HelloJavaModule , както е показано на фигура 18. Изберете дестинацията за експорт, същата като за основния модул JAR, който е MainModulemodules директория. Името на JAR файла трябва да е различно и е helloJavaModule.jar . Щракнете върху Напред.
Фигура 18: Спецификация на JAR файл за зависимост JAR
Изберете опциите за JAR опаковка по подразбиране, както е показано на Фигура 19, и щракнете върху Напред.
Фигура 19: Избиране на Опции за опаковане
След това персонализирайте спецификацията на манифеста на JAR. Тъй като проектът за зависимост не включва клас за входна точка на приложение, запазете Основния клас като празно поле, както е показано на фигура 20, и щракнете върху Готово.
Фигура 20: Няма основен клас за проект на зависимост
helloJavaModule.jar се експортира в MainModule/modules директория, както е показано в Package Explorer на Фигура 21.
Фигура 21: Експортиран JAR helloJavaModule.jar
Добавяне на конфигурация за изпълнение
За да стартираме Java приложението на основния модул, трябва да създадем конфигурация за изпълнение за MainModule проект. Щракнете с десния бутон върху MainModule в Package Explorer и изберете Properties , както е показано на Фигура 22.
Фигура 22: Package Explorer>MainModule>Properties
В прозореца със свойства изберете Настройки за изпълнение/отстраняване на грешки и щракнете върху Ново... за да създадете нова конфигурация за стартиране, както е показано на Фигура 23.
Фигура 23: Properties>Run Debug Settings>New...
В Изберете тип конфигурация , изберете Приложение Java , както е показано на Фигура 24.
Фигура 24: Избиране на тип конфигурация като Java приложение
В съветника за конфигурация посочете име (MainModuleConfig ) в Име поле и с избрания проект като MainModule щракнете върху Търсене... за Основния клас , както е показано на Фигура 25.
Фигура 25: Задаване на свойства на конфигуриране на стартиране
В Изберете основен тип , изберете main.module.MainModule въведете (вижте фигура 26) и щракнете върху OK.
Фигура 26: Избиране на Основен тип
С Основния клас щракнете върху Аргументи раздел, за да изберете следващите VM аргументи, както е показано на Фигура 27.
Фигура 27: Избиране на раздел Аргументи
Добавете следните аргументи на VM към полето аргументи на VM, както е показано на Фигура 28.
--module-path modules/helloJavaModule.jar;modules/mainmodule.jar -m mainModule/main.module.MainModule
--module-path arg задава пътя на модула към двата JAR-а за двата модула. -m arg задава модула. Кликнете върху Прилагане , както е показано на Фигура 28.
Фигура 28: Прилагане на настройките за конфигурация на изпълнение
Щракнете върху OK, както е показано на Фигура 29, за да завършите конфигурацията на стартиране.
Фигура 29: Завършване на Run Configuration
Нова конфигурация за изпълнение, MainModuleConfig , се създава, както е показано на Фигура 30. Щракнете върху Приложи и затвори в прозореца Properties.
Фигура 30: Прилагане на свойства за проект MainModule
Изпълнение на приложението Java на основния модул
След това ще тестваме дали главният модул извиква модула на зависимостта, като стартираме приложението на главния модул. Щракнете с десния бутон върху MainModule.java в Package Explorer и изберете Run As>Java Application (вижте Фигура 31).
Фигура 31: Package Explorer>MainModule>Run As>Java Application
Резултатът от приложението Java се показва в Конзолата , както е показано на Фигура 32. Съобщението “Здравей от” от главния модул се комбинира със съобщението “Експортиран Java модул!” от модула на зависимостта, за да изведе съобщението „Здравей от експортиран Java модул!“.
Фигура 32: Изход на конзолата
Заключение
В две статии обсъдихме използването на модулни зависимости в Java 9.