4

我正在使用 eclipse.aether(版本 1.0.0.v20140518)以编程方式从我的存储库中获取一些 maven 工件。为此,我使用以下代码:

Artifact artifact = new DefaultArtifact( artifactName );
ArtifactRequest artifactRequest = new ArtifactRequest().setArtifact( artifact );
repositorySystem.resolveArtifact(session, artifactRequest);

其中 artifactName 是格式为“groupId:artifactId:version”的字符串。当版本是固定版本时(如“org.myNamespace:myProject:1.0.0”)一切正常。此外,我还应该被允许用“LATEST”替换固定版本(如“org.myNamespace:myProject:LATEST”),在这种情况下,它应该在我的存储库中加载该工件的最新版本。

这也有效,但只是部分有效,这意味着它永远不会检索 SNAPSHOT 工件,而只会发布。这似乎不符合 Maven 语义,因为它也被描述在这里如何告诉 Maven 使用最新版本的依赖项?

难道我做错了什么?有没有办法加载工件的最新版本,无论它是发布版还是快照?

4

1 回答 1

1

使用开放范围(不是最新的)适用于resolveVersionRange. 例如:

VersionRangeRequest request = new VersionRangeRequest();
request.setArtifact(new DefaultArtifact("groupId", "artifactId", "jar", "(,]"));
VersionRangeResult result = repositorySystem.resolveVersionRange(session, request);
Version highestVersion = result.getHighestVersion();
于 2015-03-11T19:37:05.937 回答