简体   繁体   中英

Can I use Maven repository manager outside of Maven?

I already asked in Maven User List , let me duplicate here.

I'm trying to create an application that will download and use Maven artifacts outside of Maven. I think that in this case the smartest way would be to use Maven already existing classes. Can anyone help me with a hint where to look for?

Would be nice to make it working this way:

Repository rep = new Repository("~/.m2"); 
Artifact artifact = new Artifact("com.example", "foo", "1.0"); 
String path = rep.resolve(artifact); 
assert path.equals("~/.m2/repository/com/example/foo/1.0/foo.jar"); 

I'm using Maven 3.

Aether does exactly what I need.

edit: A few weeks ago I created an open source tool that simplifies the interaction with Aether: jcabi-aether . Now it is as simple as (in maven plugin):

File repo = this.session.getLocalRepository().getBasedir();
Collection<Artifact> deps = new Aether(this.getProject(), repo).resolve(
  new DefaultArtifact("junit", "junit-dep", "", "jar", "4.10"),
  JavaScopes.RUNTIME
);

您是否看过常春藤 ,看它是否符合您的需求?

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM