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()
应该返回编译范围内的直接和间接依赖项。但它返回的是一个空列表。怎么了