Мне нужна помощь, используя IVY в качестве менеджера зависимостей
мое приложение должно загружать плагины в RUN-TIME
означает, что во время работы основного приложения пользователь может запросить новый плагин
и установите их,
Я хочу управлять всеми установленными плагинами, используя основную базу данных приложения.
я хочу получить pom с моего сервера плагинов (или другого дескриптора),
и попросите IVY сказать мне, каковы зависимости или пусть IVY
установить плагин и зависимости,
на основе текущего состояния моей заявки.
(что у меня сейчас,
1.jar используется основным приложением
2.jar используется текущими установленными плагинами)
я хочу, чтобы каждый плагин имел независимый каталог
в какой-то папке, где находится мое приложение (не общее)
дело в том, что я не знаю с чего начать
я замечаю, что для этого нет API программирования
Я нашел одну ссылку в сети кого-то, кто пробовал нечто подобное
но похоже, что код не завершен, или отсутствуют некоторые переменные
и я не знаю, как завершить остальное причина озера документации документации
http://www.mail-archive.com/ivy-user@ant.apache.org/msg03228.html
(где переменная "art" пришла для .....)
Можете ли вы помочь мне, пожалуйста ...
Спасибо всем
ОБНОВЛЕНИЕ
хорошо, это то, что я сейчас пытаюсь.
я получаю сообщение об ошибке плюс я не знаю, как определить мой архивный сервер
IvySettings settings = new IvySettings();
settings.setDefaultIvyUserDir(new File("D:/programming/eclipse_projects/ivyTest/repo/"));
settings.setDefaultCache(new File("D:/programming/eclipse_projects/ivyTest/repo/cache/"));
settings.setDefaultCacheArtifactPattern("[module]/[revision]/[module]-[revision](-[classifier]");
Ivy ivy = Ivy.newInstance(settings);
ivy.getLoggerEngine().pushLogger(new DefaultMessageLogger(Message.MSG_VERBOSE));
ModuleDescriptor md = PomModuleDescriptorParser.getInstance().parseDescriptor(new IvySettings(), new File("src/movies.pom").toURL(), true);
RetrieveOptions retriveOptions = new RetrieveOptions();
retriveOptions.setUseOrigin(true);
retriveOptions.setConfs(md.getConfigurationsNames());
ivy.retrieve(md.getModuleRevisionId(), "lib/[conf]/[artifact].[ext]", etriveOptions);
это ошибка, которую я получаю
:: loading settings :: url = jar:file:/D:/programming/eclipse_projects/ivyTest/ivy-2.2.0.jar!/org/apache/ivy/core/settings/ivysettings.xml
:: retrieving :: org.jtpc#movies
checkUpToDate=true
confs: [default, master, compile, provided, runtime, test, system, sources, javadoc, optional]
java.lang.RuntimeException: problem during retrieve of org.jtpc#movies: java.lang.IllegalStateException: Report file 'D:\programming\eclipse_projects\ivyTest\repo\cache\org.jtpc-movies-default.xml' does not exist.
at org.apache.ivy.core.retrieve.RetrieveEngine.retrieve(RetrieveEngine.java:206)
at org.apache.ivy.Ivy.retrieve(Ivy.java:540)
at Test.main(Test.java:52)
Caused by: java.lang.IllegalStateException: Report file 'D:\programming\eclipse_projects\ivyTest\repo\cache\org.jtpc-movies-default.xml' does not exist.
at org.apache.ivy.plugins.report.XmlReportParser.parse(XmlReportParser.java:294)
at org.apache.ivy.core.retrieve.RetrieveEngine.determineArtifactsToCopy(RetrieveEngine.java:288)
at org.apache.ivy.core.retrieve.RetrieveEngine.retrieve(RetrieveEngine.java:104)
... 2 more