(注意:此问题最初由Dan Allen在Google+上提出:https://plus.google.com/114112334290393746697/posts/G6BLNgjyqeQ)
如果我运行'mvn install',它会安装什么工件?或者,如果我运行'mvn deploy',它会部署哪些工件?
这可能是一个相当简单的插件,但我不想重新发明它,如果它已经以编程方式在某处可用。看起来这应该可以随时随地使用。
答案 0 :(得分:3)
正如Andrew Logvinov已经评论过,任何maven插件都可以附加
额外的文物。所以我认为没有实际可行的话
构建项目并执行绑定到生命周期阶段的所有插件,直到package
。
我不知道有任何预先存在的插件这样做,可能会关闭
将实际部署运行到临时目录,然后列出
包含文件。为避免在执行此操作时修改本地存储库,您
我想避免install
阶段。 verify
阶段直接发生
在install
之前,可以显式调用部署mojo。
deploy plugin允许使用如下文件网址指定备用存储库:
mvn verify deploy:deploy -DaltDeploymentRepository=snapshots::default::file:///home/jh/Temp/repository
列出所有附加工件的maven插件的最简单实现可能如下所示:
/**
* @goal list-artifacts
* @phase verify
*/
public class ListArtifactsMojo extends AbstractMojo {
/**
* @parameter default-value="${project}"
* @required
* @readonly
*/
MavenProject project;
public void execute() throws MojoExecutionException, MojoFailureException {
Collection<Artifact> artifacts = new ArrayList<Artifact>();
artifacts.add(project.getArtifact());
artifacts.addAll(project.getAttachedArtifacts());
for (Artifact artifact : artifacts) {
System.out.println("Artifact: " + artifact);
}
}
}