Java 在Maven插件中获取依赖项工件

Java 在Maven插件中获取依赖项工件,java,maven,maven-plugin,Java,Maven,Maven Plugin,我正在尝试编写一个与著名的exec:javamojo类似的Maven插件。它创建一个类加载器,将项目的工件加载到Maven的JVM中,并对它们进行处理。下面是我创建类加载器的代码: Set<URL> urls = new HashSet<URL>(); try { for (Object artifactObject : project.getCompileArtifacts()) { Artifact artifact = (Artifact)

我正在尝试编写一个与著名的
exec:java
mojo类似的Maven插件。它创建一个类加载器,将项目的工件加载到Maven的JVM中,并对它们进行处理。下面是我创建类加载器的代码:

Set<URL> urls = new HashSet<URL>();
try {
    for (Object artifactObject : project.getCompileArtifacts()) {
        Artifact artifact = (Artifact) artifactObject;
        urls.add(artifact.getFile().toURI().toURL());
    }
    urls.add(project.getArtifact().getFile().toURI().toURL());
} catch (MalformedURLException ex) {
    throw new RuntimeException(ex); // this really shouldn't happen
}
ClassLoader loader = new URLClassLoader(urls.toArray(new URL[urls.size()]));
Set url=new HashSet();
试一试{
对于(对象artifactObject:project.getCompileArtifacts()){
工件工件=(工件)工件对象;
add(artifact.getFile().toURI().toURL());
}
add(project.getArtifact().getFile().toURI().toURL());
}捕获(格式错误){
抛出新的RuntimeException(ex);//这真的不应该发生
}
ClassLoader=newurlclassloader(URL.toArray(newurl[URL.size()]);
根据我所能找到的少量文档,以及
exec:java
的源代码,
project.getCompileArtifacts()
应该返回编译范围内的直接和间接依赖项。但它返回的是一个空列表。怎么了