【发布时间】:2011-04-26 16:39:34
【问题描述】:
我在使用 IVY 作为依赖管理器时需要帮助
我的应用程序需要在运行时加载插件
意味着在核心应用程序运行时,用户可以请求新的插件
并安装它们,
我希望使用核心应用程序数据库管理所有已安装的插件。
我想从我的插件服务器(或其他一些描述符)中获取一个 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
【问题讨论】:
-
您需要指出返回的错误。
-
是的,我不知道如何设置我的存储库。
-
添加了一个示例设置文件,用于配置 Maven 存储库的位置。在下面查看我的邮件
标签: java jar dependencies ivy