1

このコードですか

project.getPluginRepositories().add(myCustomRepository); 

動作するはずafterProjectsReadのMaven拡張機能(クラス拡張)のメソッド内で実行されますか? AbstractMavenLifecycleParticipant正常に実行されます (エラーも警告もありません) が、リポジトリは Maven によって考慮されていないようで、ビルドは「プラグイン .... またはその依存関係の 1 つを解決できませんでした」で失敗します。

この方法でこれが不可能な場合、maven 拡張機能から動的にレポを追加する他の方法はありますか?

4

2 に答える 2

0

この方法でこれが不可能な場合、maven 拡張機能から動的にレポを追加する他の方法はありますか?

このコードを縫い合わせます

List<ArtifactRepository> pluginRepos = new LinkedList<>();
pluginRepos.addAll(project.getPluginArtifactRepositories());
pluginRepos.add(myCustomRepository);
project.setPluginArtifactRepositories(pluginRepos);

動作します。これはむしろのですが、それもうまくいくはずです。 ExecutionListenerMavenLifecycleParticipantafterProjectsRead

警告: これはおそらく Maven が期待していることではなく、一部のプラグインが壊れる可能性があります。たとえばmaven-shade-plugin、リポジトリがこの方法で追加されたときに削減された POM を生成しようとすると、ほとんど問題なく動作しますが、壊れます (ビルドに失敗します)。

于 2017-06-14T09:19:01.773 に答える