0
mavenアーティファクトのディレクトリを取得してNexus 3にアップロードするツールを開発しようとしています。このツールは機能していますが、パフォーマンスに問題があります。 私のプログラムは、アップロードする必要のあるアーティファクトごとに別々のMavenプロセスを起動します。これらが何らかの形でバッチ処理できるかどうか不思議です。複数のmaven deployコマンドを同じプロセスで実行する方法
mavenコマンドを実行するためにmaven-invoker
ライブラリを使用しています。
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);
}
}
この
はアーティファクトdeployArtifact
法と呼ばれる新しいプロセスが開かれていることたびに
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);
}
をアップロードするresposibleクラスで、同じを使用するバッチ全てのアップロードへの道がありますプロセス?
ただし、httpリクエストを使用することはできません。https://support.sonatype.com/hc/en-us/articles/115006744008 – Oleg