簡體   English   中英

從樹數據結構打印純文本樹(java)

[英]Print plain text tree from tree data structure (java)

我是一個超級粉絲

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 dependency:tree 幾乎相同的文本?

我不是創建/使用 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() );

這就是你要找的嗎?

以防萬一有人來這里尋找純 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);

它從您的示例中生成樹。 此代碼使用自定義樹樣式來匹配您的示例,但存在預定義的樹樣式
完全披露:我是文本樹的作者。 它是免費和開源的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM