Я также не нашел существующего метода для этого, поэтому я использую следующую логику. Это плагин, создающий настраиваемое ухо, который добавляет необходимые зависимости в XML-файл и включает их в архив. Он использует getArtifacts
вместо getDependencyArtifacts
, так как меня также интересуют транзитивные зависимости.
Collection<Artifact> dependencies = new ArrayList<Artifact>();
dependencies.addAll(project.getArtifacts());
for (Iterator<Artifact> it=dependencies.iterator(); it.hasNext(); ) {
Artifact dependency = it.next();
String scope = dependency.getScope();
String type = dependency.getType();
if (dependency.isOptional() || !"jar".equals(type) || "provided".equals(scope) || "test".equals(scope) || "system".equals(scope)) {
getLog().debug("Pruning dependency " + dependency);
it.remove();
}
}