Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 仅从pom文件检索依赖项_Java_Maven - Fatal编程技术网

Java 仅从pom文件检索依赖项

Java 仅从pom文件检索依赖项,java,maven,Java,Maven,我正在做一些静态挖掘,我想有一个涉及库的列表 有没有办法通过编程查找pom.xml文件使用的依赖项? 我不能使用.m2 repo或类似的东西,因为代码没有编译 (换句话说,我想重新创建POM.xml文件的“Efective POM”选项卡,如Eclipse所示) 请注意,读取当前项目的pom文件(test boottstrap)会在请求时提供一组依赖项,但不会与外部pom文件一起。 代码: [...] Model model = mavenReader.read(new FileReader(p

我正在做一些静态挖掘,我想有一个涉及库的列表

有没有办法通过编程查找pom.xml文件使用的依赖项?

我不能使用.m2 repo或类似的东西,因为代码没有编译

(换句话说,我想重新创建POM.xml文件的“Efective POM”选项卡,如Eclipse所示)

请注意,读取当前项目的pom文件(test boottstrap)会在请求时提供一组依赖项,但不会与外部pom文件一起。 代码:

[...]
Model model = mavenReader.read(new FileReader(pomFile));
model.setPomFile(pomFile);

proj= new MavenProject(model);
proj.setRemoteArtifactRepositories(
Arrays.asList((ArtifactRepository) new MavenArtifactRepository(
        "maven-central",
        "http://repo1.maven.org/maven2/", 
        new DefaultRepositoryLayout(), 
        new ArtifactRepositoryPolicy(),
        new ArtifactRepositoryPolicy())));

List<Dependency> dependencies = proj.getDependencies();
for (Dependency dependency : dependencies) {
    System.out.println(dependency);
}
使用XX建议,
Runtime.getRuntime().exec(“cmd/cmvn依赖项:树”)

输出为(其他之间):

这正是我想要的。但关键是我不想知道我的项目的依赖树是什么样子的。我想调查其他项目


现在,对于
pomFile=new File(“[externalPath].pom.xml”)
它找不到任何依赖项。(该文件存在并包含正确的pom信息)。

您可以启动单独运行的进程。此命令返回带有“有效pom”的xml。稍后,您可以解析该XML以获得依赖关系


如果您对可传递依赖感兴趣,您可以以类似的方式使用
mvn dependency:tree

您是否正在寻找类似Maven工件解析器的东西?我正在寻找可传递的依赖项。使用
MavenProject
我得到了直接依赖项的列表,但我想知道哪些依赖项使用这些依赖项,等等。解析器似乎需要一个存储库。。不过我想再深入了解一下,谢谢。试试
MavenProject.getArtifacts()
或者
MavenProject.getArtifacts()
MavenProject.getArtifacts()
是空的。“有效的POM”类比可能是错误的。。。我道歉。它包含依赖项的依赖项吗?不。但是
mvn依赖项:tree
does:)有没有一种方法可以通过编程获得结果?我可能有多个pom.xml,并且它可能没有被任何mvn文件包围(我不知道它是否会影响执行/结果),您可以从代码启动一个进程并解释其输出。或者你也可以查看插件,我找到了我需要的东西,非常感谢。只需要几个参数就可以优化外部文件上的执行。谢谢
Dependency {groupId=com.github.javaparser, artifactId=javaparser-core, version=3.5.4, type=jar}
Dependency {groupId=com.jcabi, artifactId=jcabi-aether, version=0.7.19, type=jar}
Dependency {groupId=org.apache.maven, artifactId=maven-core, version=3.0.3, type=jar}
Dependency {groupId=org.apache.maven.plugins, artifactId=maven-dependency-plugin, version=3.0.2, type=jar}
Dependency {groupId=org.apache.maven.plugin-tools, artifactId=maven-plugin-annotations, version=3.5, type=jar}
[INFO] --- maven-dependency-plugin:2.8:tree (default-cli) @ ca.umontreal.iro.logiannot ---
[INFO] ca.umontreal.iro.logiannot:ca.umontreal.iro.logiannot:jar:0.0.1-SNAPSHOT
[INFO] +- com.github.javaparser:javaparser-core:jar:3.5.4:compile
[INFO] +- com.jcabi:jcabi-aether:jar:0.7.19:compile
[INFO] |  +- com.jcabi:jcabi-aspects:jar:0.7.19:compile
[INFO] |  +- com.jcabi:jcabi-log:jar:0.7.19:compile
[INFO] |  |  +- log4j:log4j:jar:1.2.17:compile
[INFO] |  |  \- org.slf4j:slf4j-api:jar:1.7.5:compile
[INFO] |  +- org.aspectj:aspectjrt:jar:1.7.2:compile
[INFO] |  +- javax.validation:validation-api:jar:1.1.0.Final:compile
[INFO] |  +- org.kuali.maven.wagons:maven-s3-wagon:jar:1.1.20:compile
[INFO] |  |  +- org.kuali.common:kuali-s3:jar:1.0.1:compile
[INFO] |  |  +- com.amazonaws:aws-java-sdk:jar:1.4.2:compile
[INFO] |  |  |  +- org.apache.httpcomponents:httpclient:jar:4.1:compile
[INFO] |  |  |  |  \- org.apache.httpcomponents:httpcore:jar:4.1:compile
[INFO] |  |  |  +- org.codehaus.jackson:jackson-core-asl:jar:1.8.9:compile
[INFO] |  |  |  \- org.codehaus.jackson:jackson-mapper-asl:jar:1.8.9:compile
[INFO] |  |  +- org.springframework:spring-core:jar:3.1.2.RELEASE:compile
[INFO] |  |  +- org.kuali.common:kuali-threads:jar:1.0.9:compile
[INFO] |  |  \- org.slf4j:jcl-over-slf4j:jar:1.6.4:compile
[INFO] |  +- org.sonatype.aether:aether-api:jar:1.13.1:compile
[INFO] |  +- org.sonatype.aether:aether-spi:jar:1.13.1:compile
[INFO] |  +- org.sonatype.aether:aether-util:jar:1.13.1:compile
[INFO] |  +- org.sonatype.aether:aether-connector-file:jar:1.13.1:compile
[INFO] |  +- org.sonatype.aether:aether-connector-asynchttpclient:jar:1.13.1:compile
[INFO] |  |  \- com.ning:async-http-client:jar:1.6.5:compile
[INFO] |  |     \- org.jboss.netty:netty:jar:3.2.5.Final:compile
[INFO] |  +- org.sonatype.aether:aether-connector-wagon:jar:1.13.1:compile
[INFO] |  +- org.sonatype.aether:aether-impl:jar:1.13.1:compile
[INFO] |  +- org.apache.maven:maven-aether-provider:jar:3.0.5:compile
[INFO] |  +- org.apache.maven.wagon:wagon-provider-api:jar:2.4:compile
[INFO] |  \- org.apache.commons:commons-lang3:jar:3.1:compile
[INFO] +- org.apache.maven:maven-core:jar:3.0.3:compile
[INFO] |  +- org.apache.maven:maven-model:jar:3.0.3:compile
[INFO] |  +- org.apache.maven:maven-settings:jar:3.0.3:compile
[INFO] |  +- org.apache.maven:maven-settings-builder:jar:3.0.3:compile
[INFO] |  +- org.apache.maven:maven-repository-metadata:jar:3.0.3:compile
[INFO] |  +- org.apache.maven:maven-artifact:jar:3.0.3:compile
[INFO] |  +- org.apache.maven:maven-plugin-api:jar:3.0.3:compile
[INFO] |  +- org.apache.maven:maven-model-builder:jar:3.0.3:compile
[INFO] |  +- org.sonatype.sisu:sisu-inject-plexus:jar:2.1.1:compile
[INFO] |  |  \- org.sonatype.sisu:sisu-inject-bean:jar:2.1.1:compile
[INFO] |  |     \- org.sonatype.sisu:sisu-guice:jar:no_aop:2.9.4:compile
[INFO] |  +- org.codehaus.plexus:plexus-interpolation:jar:1.14:compile
[INFO] |  +- org.codehaus.plexus:plexus-utils:jar:2.0.6:compile
[INFO] |  +- org.codehaus.plexus:plexus-classworlds:jar:2.4:compile
[INFO] |  +- org.codehaus.plexus:plexus-component-annotations:jar:1.5.5:compile
[INFO] |  \- org.sonatype.plexus:plexus-sec-dispatcher:jar:1.3:compile
[INFO] |     \- org.sonatype.plexus:plexus-cipher:jar:1.4:compile
[INFO] +- org.apache.maven.plugins:maven-dependency-plugin:jar:3.0.2:compile
[INFO] |  +- org.apache.maven.reporting:maven-reporting-api:jar:3.0:compile
[INFO] |  +- org.apache.maven.reporting:maven-reporting-impl:jar:2.3:compile
[INFO] |  |  +- org.apache.maven.doxia:doxia-core:jar:1.2:compile
[INFO] |  |  |  \- xerces:xercesImpl:jar:2.9.1:compile
[INFO] |  |  |     \- xml-apis:xml-apis:jar:1.3.04:compile
[INFO] |  |  \- commons-validator:commons-validator:jar:1.3.1:compile
[INFO] |  |     +- commons-beanutils:commons-beanutils:jar:1.7.0:compile
[INFO] |  |     +- commons-digester:commons-digester:jar:1.6:compile
[INFO] |  |     \- commons-logging:commons-logging:jar:1.0.4:compile
[INFO] |  +- commons-io:commons-io:jar:2.5:compile
[INFO] |  +- org.apache.maven.doxia:doxia-sink-api:jar:1.4:compile
[INFO] |  |  \- org.apache.maven.doxia:doxia-logging-api:jar:1.4:compile
[INFO] |  +- org.apache.maven.doxia:doxia-site-renderer:jar:1.4:compile
[INFO] |  |  +- org.apache.maven.doxia:doxia-decoration-model:jar:1.4:compile
[INFO] |  |  +- org.apache.maven.doxia:doxia-module-xhtml:jar:1.4:compile
[INFO] |  |  +- org.apache.maven.doxia:doxia-module-fml:jar:1.4:compile
[INFO] |  |  +- org.codehaus.plexus:plexus-i18n:jar:1.0-beta-7:compile
[INFO] |  |  +- org.codehaus.plexus:plexus-container-default:jar:1.0-alpha-30:compile
[INFO] |  |  |  \- junit:junit:jar:3.8.1:compile
[INFO] |  |  +- org.codehaus.plexus:plexus-velocity:jar:1.1.7:compile
[INFO] |  |  +- org.apache.velocity:velocity:jar:1.5:compile
[INFO] |  |  |  \- oro:oro:jar:2.0.8:compile
[INFO] |  |  \- org.apache.velocity:velocity-tools:jar:2.0:compile
[INFO] |  |     +- commons-chain:commons-chain:jar:1.1:compile
[INFO] |  |     +- dom4j:dom4j:jar:1.1:compile
[INFO] |  |     +- sslext:sslext:jar:1.2-0:compile
[INFO] |  |     +- org.apache.struts:struts-core:jar:1.3.8:compile
[INFO] |  |     |  \- antlr:antlr:jar:2.7.2:compile
[INFO] |  |     +- org.apache.struts:struts-taglib:jar:1.3.8:compile
[INFO] |  |     \- org.apache.struts:struts-tiles:jar:1.3.8:compile
[INFO] |  +- org.codehaus.plexus:plexus-archiver:jar:3.4:compile
[INFO] |  |  +- org.apache.commons:commons-compress:jar:1.11:compile
[INFO] |  |  +- org.iq80.snappy:snappy:jar:0.4:compile
[INFO] |  |  \- org.tukaani:xz:jar:1.5:runtime
[INFO] |  +- org.apache.maven.shared:file-management:jar:1.2.1:compile
[INFO] |  |  \- org.apache.maven.shared:maven-shared-io:jar:1.1:compile
[INFO] |  +- org.codehaus.plexus:plexus-io:jar:2.4:compile
[INFO] |  +- org.apache.maven.shared:maven-dependency-analyzer:jar:1.7:compile
[INFO] |  |  \- org.ow2.asm:asm:jar:5.0.2:compile
[INFO] |  +- org.apache.maven.shared:maven-dependency-tree:jar:3.0.1:compile
[INFO] |  |  \- org.eclipse.aether:aether-util:jar:0.9.0.M2:compile
[INFO] |  +- org.apache.maven.shared:maven-common-artifact-filters:jar:3.0.1:compile
[INFO] |  +- org.apache.maven.shared:maven-artifact-transfer:jar:0.9.1:compile
[INFO] |  |  \- commons-codec:commons-codec:jar:1.6:compile
[INFO] |  +- org.apache.maven.shared:maven-shared-utils:jar:3.2.0:compile
[INFO] |  +- commons-lang:commons-lang:jar:2.6:compile
[INFO] |  +- commons-collections:commons-collections:jar:3.2.2:compile
[INFO] |  \- classworlds:classworlds:jar:1.1:compile
[INFO] \- org.apache.maven.plugin-tools:maven-plugin-annotations:jar:3.5:provided