0
我正在尝试开发一个获取maven工件目录并将其上传到Nexus 3的工具。该工具正在运行,但我遇到了性能问题。 我的程序为每个必须上传的工件启动一个单独的maven进程。我很好奇这些工具是否可以批量生成。如何在同一个进程上执行几个maven部署命令
我正在使用maven-invoker
库来执行maven命令。
public class MavenUploader {
private final MavenDeployer mavenDeployer;
@Inject
public MavenUploader(MavenDeployer mavenDeployer) {
this.mavenDeployer = mavenDeployer;
}
@Override
public void uploadToRepository(Path pathToUpload) {
try (Stream<Path> files = Files.walk(pathToUpload)){
files.forEach(mavenDeployer::deployArtifact);
} catch (IOException e) {
throw new UncheckedIOException(e);
}
}
这是resposible上传文物
import org.apache.maven.shared.invoker.*;
public class MavenDeployer {
private final InvocationRequest invocationRequest;
private final Invoker invoker;
@Inject
public MavenDeployer(InvocationRequest invocationRequest,
Invoker invoker) {
this.invocationRequest = invocationRequest;
this.invoker = invoker;
}
public void deployArtifact(Path pathToPom, String commandToExecute) {
invocationRequest.setGoals(Collections.singletonList(commandToExecute));
InvocationResult invocationResult = invoker.execute(invocationRequest);
}
各该deployArtifact
方法称为新的进程打开时为类,有一种方法来批量所有上传使用相同处理?
不要这么想,但是你可以使用http请求https://support.sonatype.com/hc/en-us/articles/115006744008 – Oleg