我是
的忠实粉丝mvn dependency:tree
并希望打印一个外观相似的树作为普通的ascii文本作为我的java程序的输出。
com.totsp.gwt:maven-gwt-sample:war:1.0-SNAPSHOT
+- com.google.gwt:gwt-servlet:jar:2.4.0:compile
+- com.google.gwt:gwt-user:jar:2.4.0:provided
| +- javax.validation:validation-api:jar:1.0.0.GA:provided
| \- javax.validation:validation-api:jar:sources:1.0.0.GA:provided
+- log4j:log4j:jar:1.2.14:compile
\- junit:junit:jar:4.1:test
我希望实现这一目标的库很容易使用,但我找不到它。
我看到的最接近的替补是:http://code.google.com/p/j-text-utils/但它不如Maven那么好。
在哪里可以找到一个打印树结构的库,它的文本几乎与mvn依赖关系相同:树?
答案 0 :(得分:2)
我不是创建/使用MOJO的专家,但是如何下载和查看maven-dependency-plugin呢?
将它作为依赖项添加到项目中是微不足道的(我猜你是由Maven管理的),乍一看,你应该直接调用TreeMojo.execute()或类似的东西。
粗略地说它是这样的:
ArtifactFilter artifactFilter = createResolvingArtifactFilter();
rootNode = dependencyTreeBuilder.buildDependencyTree( project,
localRepository, artifactFactory, artifactMetadataSource,
artifactFilter, artifactCollector );
String dependencyTreeString = serializeDependencyTree( rootNode );
DependencyUtil.log( dependencyTreeString, getLog() );
那是你在寻找什么?
答案 1 :(得分:1)
以防万一有人来这里寻找纯Java库解决方案-text-tree:
<dependency>
<groupId>org.barfuin.texttree</groupId>
<artifactId>text-tree</artifactId>
<version>2.0.0</version>
</dependency>
您只需使树节点实现Node接口,即可
Node tree = ...; // your tree
TreeOptions options = new TreeOptions();
options.setStyle(new TreeStyle("+- ", "| ", "\\- "));
String rendered = TextTree.newInstance(options).render(tree);
System.out.println(rendered);
从您的示例中生成树。此代码使用自定义树样式进行匹配
您的示例,但存在预定义的tree styles。
全面披露:我是text-tree的作者。它是免费和开源的。