привет
Есть ли простой способ получить все зависимости для проекта maven, используя Java (не консоль mvn) или какой алгоритм используется в mvn? Спасибо
Я нашел модель (org.apache.maven.model)
Приведенный ниже код работает, пока не найдет переменную (например, '<' version> $ {mavenVersion} '<' / version>)
System.out.println("dependency" + d.getArtifactId());
if(d.isOptional()){
return;
}
if(d.getVersion()==null){
if(mod.getParent()!=null){
try{
MavenArtifact mart=new MavenArtifact();
mart.setArtifactId(mod.getParent().getArtifactId());
mart.setGroupId(mod.getParent().getGroupId());
mart.setVersion(mod.getParent().getVersion());
mart.setRepositoryUrl(mA.getRepositoryUrl());
Model fMod = getModelFromPom(mart, p);
if(fMod.getDependencyManagement()!=null){
for (Dependency dep : fMod.getDependencyManagement().getDependencies()) {
if(dep.getArtifactId().equals(d.getArtifactId())&dep.getGroupId().equals(d.getGroupId())){
getDependency(fMod, mart, p, dep);
}
}
for (Dependency dep : fMod.getDependencies()) {
if(dep.getArtifactId().equals(d.getArtifactId())&dep.getGroupId().equals(d.getGroupId())){
getDependency(fMod, mart, p, dep);
}
}
}}
catch(Exception e){
e.printStackTrace();
view.showWarning("Could not find: groupId:"
+ d.getGroupId() + " artifactId"
+ d.getArtifactId() + " version:"
+ d.getVersion());
}
}else{
view.showWarning("Could not find: groupId:"
+ d.getGroupId() + " artifactId"
+ d.getArtifactId() + " version:"
+ d.getVersion());
}
}else{
MavenArtifact m = proxy.findDependency(d.getGroupId(), d
.getArtifactId(), d.getVersion());
if (m == null) {
view.showWarning("Could not find: groupId:"
+ d.getGroupId() + " artifactId"
+ d.getArtifactId() + " version:"
+ d.getVersion());
return;
}
importMavenArtifact(m, p);