[
https://issues.apache.org/jira/browse/IVY-912?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12650357#action_12650357
]
Maarten Coene commented on IVY-912:
-----------------------------------
The problem is that it is possible that the artifact isn't in the cache (can
happen if you set useOrigin="true" on the cache element in your settings.xml).
In that case, the File returned by that method will probably not exist.
You should take a look at the IvyCachePath task to have an example of getting
the resolved artifacts as file paths by using the ResolveReport.
If I'm not mistaken, IvyDE (the eclipse plugin) uses a similar approach.
> Can the getArchiveFileInCache() methods be put on the RepositoryCacheManager
> interface?
> ----------------------------------------------------------------------------------------
>
> Key: IVY-912
> URL: https://issues.apache.org/jira/browse/IVY-912
> Project: Ivy
> Issue Type: Wish
> Components: Core
> Affects Versions: 2.0.0-beta-2
> Reporter: Guy Mahieu
>
> I'm writing an IDE plugin, and I need to access the filepath of a resolved
> dependency to add to the dependencies of the IDE project.
> To do this, I needed to use the DefaultRepositoryCacheManager directly since
> the getArchiveFileInCache(artifact) method is not on the interface.
> Was this an intentional decision, if so: how should I lookup the archive for
> the artifact?
> If not, can this method become part of the interface so the usability of the
> API increases?
> Small code snippet to illustrate the current API usage: {noformat} if
> (repositoryCacheManager instanceof DefaultRepositoryCacheManager) {
> DefaultRepositoryCacheManager defaultRepositoryCacheManager =
> (DefaultRepositoryCacheManager) repositoryCacheManager;
>
> projectDependencies.add(defaultRepositoryCacheManager.getArchiveFileInCache(artifact).getAbsolutePath());
>
> }
> {noformat}
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.