GithubHelp home page GithubHelp logo

dspinellis / umlgraph Goto Github PK

View Code? Open in Web Editor NEW
339.0 33.0 94.0 4.27 MB

Declarative specification and drawing of UML diagrams

Home Page: http://www.spinellis.gr/umlgraph

License: BSD 3-Clause "New" or "Revised" License

Java 89.18% Shell 1.11% Makefile 1.00% HTML 4.50% Batchfile 0.26% Roff 3.94%
java uml uml-diagram reverse-engineering

umlgraph's Introduction

UMLGraph - Declarative Drawing of UML Diagrams

UMLGraph allows the declarative specification and drawing of UML diagrams. You can browse the system's documentation through this link, or print it through this link.

In order to run UMLGraph, you need to have GraphViz installed in your system path. On most Linux distributions, this can be easily installed using the regular package manager.

To compile the Java doclet from the source code run ant on the build.xml file.

If you change the source code, you can run regression tests by executing ant test.

Visit the project's home page for more information.

Compatibility

If you build against Java 8, please use latest version of 5.X of the Doclet.

Since Java 9 doclet APIs where completely rewritten, the Doclet in version 6 supports only supports Java 9 and above.

Development versions

In order to use development versions, you can use JitPack. Note that as this is compiled on demand, you may sometimes see a "Read timed out" when the package is recompiled, and it should be fine a few seconds later. And because the master branch can change any time, you may want to use a versioned snapshot instead (see the Jitpack documentation for details).

Gradle:

repositories { maven { url 'https://jitpack.io' } }
configurations { umlgraph }
dependencies { umlgraph 'com.github.dspinellis:UMLGraph:master-SNAPSHOT' }
javadoc {
  doclet = 'org.umlgraph.doclet.UmlGraphDoc'
  docletpath = configurations.umlgraph.files.asType(List)
  tags("hidden:X", "opt:X", "has:X", "navhas:X", "assoc:X", "navassoc:X",
       "composed:X", "navcomposed:X", "stereotype:X", "depend:X")
}

Maven:

<repositories>
    <repository>
        <id>jitpack.io</id>
        <url>https://jitpack.io</url>
    </repository>
</repositories>
...
<dependency>
    <groupId>com.github.dspinellis</groupId>
    <artifactId>UMLGraph</artifactId>
    <version>master-SNAPSHOT</version>
    <scope>compile</scope>
</dependency>

Jar download: https://jitpack.io/com/github/dspinellis/UMLGraph/master-SNAPSHOT/UMLGraph-master-SNAPSHOT.jar

See also

umlgraph's People

Contributors

aaime avatar adriann avatar aymandf avatar cyrildeverson avatar dspinellis avatar gousiosg avatar jcaden avatar jean avatar kno10 avatar p-r-o-m-e-t-h-e-u-s avatar stummi avatar tischda avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

umlgraph's Issues

Build issues on JDK7

I'm getting a few build issues with JDK7.

cannot find package package com.sun.javadoc

I've verified that maven is resolving to the correct tools.jar file but something else is still whacky. Anyone else run into this?

It seems to work fine on JDK8 though

If DOT fails to generate a graph can we sfdp instead?

I'm running into some cases where dot is failing to render graphs and in some cases, it actually causes javadocs to fail completely for a module. As a work around I've experimented with using graphiz's sfdp and have had some luck.

question, is there some mechanism I can use to increase the logging in order to identify the root cause of the failure.

finally is the output of sfdp the same output as dot? I have a branch whipped up that will run dot and if it fails, run sfdp before giving up. Is this the right approach? Edit: I can open a PR for this

Release to maven central

I'd love to see a recent version of UMLGraph in maven central, for UMLGraph 5.1 is not compatible with Java 7.

Upload latest version to maven central, for automatic dependency management

The latest version of umlgraph on Mavencentral appears to be 5.6.6:
https://mvnrepository.com/artifact/org.umlgraph/umlgraph

It would be good to have the latest version available as a managed dependency via maven, jcenter, etc.

As workaround, I am currently considering to use the auto-compiled version from https://jitpack.io/#dspinellis/UMLGraph - a pretty interesting idea, to have a service that can automatically build jars for github software. But I'd rather have a signed version in a repository like maven.

Enhancement Request: Allow javadoc tags to be declared on methods in class

The tags for noting the relationships between a class and other classes must be defined in the comment for the class. It would be more convenient if they could be declared on the comments for each method instead, since it is closer to the actual code that contains the dependency. All the tags across all methods would then be collected for the entire class.

Not sure if this can be done with javadoc, but it would be really nice to have.

Allow UmlGraphDoc Doclet to generate non-scaling SVG

When generating graphs in JavaDoc, the doclet automatically makes the graphs scale with the window. On large graphs, this renders them almost useless since the window cannot be scaled large enough to see anything. Is there an option to stop the SVG from scaling to the screen size and allow scrolling instead?

Could not find map file

I'm using below configuration

<groupId>org.apache.maven.plugins</groupId> <artifactId>maven-javadoc-plugin</artifactId> <version>${maven.javadoc.plugin.version}</version> <configuration> <aggregate>true</aggregate> <doclet>org.umlgraph.doclet.UmlGraphDoc</doclet> <docletArtifact> <groupId>org.umlgraph</groupId> <artifactId>umlgraph</artifactId> <version>5.6</version> </docletArtifact>

The warning message coming while running mvn site is ..

[WARNING] Ensure that dot is in your path and that its path does not contain spaces [WARNING] java.io.IOException: Cannot run program "dot": CreateProcess error=2, The system cannot find the file specified [WARNING] at java.lang.ProcessBuilder.start(ProcessBuilder.java:1047) [WARNING] at java.lang.Runtime.exec(Runtime.java:617) [WARNING] at java.lang.Runtime.exec(Runtime.java:485) [WARNING] at org.umlgraph.doclet.UmlGraphDoc.runGraphviz(UmlGraphDoc.java:144) [WARNING] at org.umlgraph.doclet.UmlGraphDoc.generateContextDiagrams(UmlGraphDoc.java:126) [WARNING] at org.umlgraph.doclet.UmlGraphDoc.start(UmlGraphDoc.java:68) [WARNING] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [WARNING] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) [WARNING] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [WARNING] at java.lang.reflect.Method.invoke(Method.java:606) [WARNING] at com.sun.tools.javadoc.DocletInvoker.invoke(DocletInvoker.java:280) [WARNING] at com.sun.tools.javadoc.DocletInvoker.start(DocletInvoker.java:160) [WARNING] at com.sun.tools.javadoc.Start.parseAndExecute(Start.java:397) [WARNING] at com.sun.tools.javadoc.Start.begin(Start.java:167) [WARNING] at com.sun.tools.javadoc.Main.execute(Main.java:59) [WARNING] at com.sun.tools.javadoc.Main.main(Main.java:49) [WARNING] Caused by: java.io.IOException: CreateProcess error=2, The system cannot find the file specified

Looking for solution I found below link -

https://issues.apache.org/jira/browse/MJAVADOC-136

Is this the fix, if yes, how to use it with same 'mvn site' command?

[ant] BUILD FAILED build.xml:27: exec returned: 128

I am trying to install the software according to instructions in README.txt file. I am facing an issue when I try to follow this step:
-To compile the Java doclet from the source code run ant on the build.xml file.

So, basically I run "ant built.xml" command but I am getting the below error:

Buildfile: /UMLGraph-5.7_2.32-SNAPSHOT/build.xml
[echo] git describe --abbrev=6 => 'version'

BUILD FAILED
/UMLGraph-5.7_2.32-SNAPSHOT/build.xml:50: The following error occurred while executing this line:
/UMLGraph-5.7_2.32-SNAPSHOT/build.xml:27: exec returned: 128

I tried to find out what's "exec returned:128" stands for with no success. However, the line 27 in build.xml file has to do with the version from git. Unfortunately, the link which is inside comments in line 20 of the build.xml file is broken and even though I searched about that issue I couldn't find something useful.

When I run the command "git describe" or "git describe --abbrev=6", I am getting:
fatal: No names found, cannot describe anything.

With a little research I found a post that says "This is caused because git rev-list --tags --max-count=1 is not returning any tags. The expected behavior is that, the build must not terminate when the repository does not have any tag yet."

I am not a git expert but I far as I can understand maybe the repository has not any tags and that causes the error.

  • OS is Ubuntu 16.04.6 LTS
  • git version 2.7.4
  • Apache Ant(TM) version 1.9.6 compiled on July 20 2018
  • java version "1.8.0_201"

Dot having problems with paths longer than 255 characters?

The following applies to UMLGraph 5.6_6.1 SNAPSHOT with graphviz 2.34.zip

I had a problem with dot when running UMLGraph after I made a change to the output location. Since the change rendered longer paths to target and source I started suspecting a maximum path length problem with dot.

I made some changes in the function "runGraphviz" of the file UmlGraphDoc.java.

Basically the idea is to change working directory to where the files are and run dot there with no path prepended. It fixed the problem.

I'm lacking possibility to paste the full code here but this is a snippet:

private static void RunGraphViz(...) {
    if(dotExecutable == null {
        dotExecutable = "dot";
    }

    File outFolder = new File(outputFolder, packageName.replace(".", "/") + "/");

    File dotFile = new File(name + ".dot");
    File pngFile = new File(name + ".png");
    File mapFile = new File(name + ".map");

    ProcessBuilder pb = new ProcessBuilder(dotExecutable, "-Tcmapx", "-o", mapFile.getName(), "-Tpng", "-o", pngFile.getName(), dotFile.getName());

    pb.directory(outFolder);

    try {
        Process p = pb.start();
        .
        .
        .

        <The rest of the function unchanged>

Inner classes not working right

Inner classes don't seem to properly work for me. I've tried three different syntaxes, and gotten mostly two results: 1. an arrow for the outer class self-referencing itself, and 2. an arrow that is seemingly correct (with $ syntax) but the class isn't recognized, and it links to oracle instead.

Below is not a tested example.

/**
 * @has - - - B <--- graph links A to A, not B.
 * @has - - - A.B <-- graph links A to A, not B.
 * @has - - - A$B  <--- graph is okay, but links to java.
 */
public class A {
  public class B {
  }
}

P.S. "@opt nodecolor" also isn't working in the doclet.

Doclets in Java 11

import com.sun.tools.doclets.standard.Standard;

[javac] /builddir/build/BUILD/UMLGraph-R5_7_2/src/main/java/org/umlgraph/doclet/UmlGraphDoc.java:22: error: package com.sun.tools.doclets.standard is not visible
[javac] import com.sun.tools.doclets.standard.Standard;
[javac]                             ^
[javac]   (package com.sun.tools.doclets.standard is declared in module jdk.javadoc, which does not export it)

No, com.sun.tools.doclets.standard.Standard class is deprecated as of Java 9 and was removed in Java 11.

See: https://docs.oracle.com/javase/9/docs/api/com/sun/tools/doclets/standard/Standard.html

java.io.FileNotFoundException: UMLGraph-R5_7_2/testdata/umldoc-out/gr/spinellis/invoice/Customer.dot (No such file or directory)

With Java 8 on Fedora 25 and 26, I get for ant test:

[…]
     [java] UmlGraphDoc version 5.7.2, altering javadocs
     [java] Building Package view for package gr.spinellis.invoice
     [java] UMLDoc test: warning - Error!
     [java] UMLDoc test: warning - java.lang.Error: generic is not a supported OS platform.
     [java] 2 warnings
     [java] java.lang.Error: generic is not a supported OS platform.
     [java]     at java.lang.UNIXProcess$Platform.get(UNIXProcess.java:164)
     [java]     at java.lang.UNIXProcess.<clinit>(UNIXProcess.java:168)
     [java]     at java.lang.ProcessImpl.start(ProcessImpl.java:130)
     [java]     at java.lang.ProcessBuilder.start(ProcessBuilder.java:1029)
     [java]     at java.lang.Runtime.exec(Runtime.java:620)
     [java]     at java.lang.Runtime.exec(Runtime.java:485)
     [java]     at org.umlgraph.doclet.UmlGraphDoc.runGraphviz(UmlGraphDoc.java:144)
     [java]     at org.umlgraph.doclet.UmlGraphDoc.generatePackageDiagrams(UmlGraphDoc.java:99)
     [java]     at org.umlgraph.doclet.UmlGraphDoc.start(UmlGraphDoc.java:67)
     [java]     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
     [java]     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
     [java]     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
     [java]     at java.lang.reflect.Method.invoke(Method.java:498)
     [java]     at com.sun.tools.javadoc.DocletInvoker.invoke(DocletInvoker.java:310)
     [java]     at com.sun.tools.javadoc.DocletInvoker.start(DocletInvoker.java:189)
     [java]     at com.sun.tools.javadoc.Start.parseAndExecute(Start.java:366)
     [java]     at com.sun.tools.javadoc.Start.begin(Start.java:219)
     [java]     at com.sun.tools.javadoc.Start.begin(Start.java:205)
     [java]     at com.sun.tools.javadoc.Main.execute(Main.java:162)
     [java]     at org.umlgraph.test.UmlDocTest.runDoclet(UmlDocTest.java:155)
     [java]     at org.umlgraph.test.UmlDocTest.runTest(UmlDocTest.java:77)
     [java]     at org.umlgraph.test.UmlDocTest.main(UmlDocTest.java:57)
     [java] Exception in thread "main" java.io.FileNotFoundException: /home/builder/fedora-scm/umlgraph/UMLGraph-R5_7_2/testdata/umldoc-out/gr/spinellis/invoice/Customer.dot (No such file or directory)
     [java]     at java.io.FileInputStream.open0(Native Method)
     [java]     at java.io.FileInputStream.open(FileInputStream.java:195)
     [java]     at java.io.FileInputStream.<init>(FileInputStream.java:138)
     [java]     at java.io.FileReader.<init>(FileReader.java:72)
     [java]     at org.umlgraph.test.DotDiff.readGraphLines(DotDiff.java:130)
     [java]     at org.umlgraph.test.DotDiff.<init>(DotDiff.java:58)
     [java]     at org.umlgraph.test.TestUtils.dotFilesEqual(TestUtils.java:99)
     [java]     at org.umlgraph.test.UmlDocTest.compareDocletOutputs(UmlDocTest.java:120)
     [java]     at org.umlgraph.test.UmlDocTest.compareDocletOutputs(UmlDocTest.java:118)
     [java]     at org.umlgraph.test.UmlDocTest.compareDocletOutputs(UmlDocTest.java:118)
     [java]     at org.umlgraph.test.UmlDocTest.compareDocletOutputs(UmlDocTest.java:118)
     [java]     at org.umlgraph.test.UmlDocTest.runTest(UmlDocTest.java:79)
     [java]     at org.umlgraph.test.UmlDocTest.main(UmlDocTest.java:57)
     [java] Java Result: 1

NullPointerException

We are using UMLGraph in our projet and we recently faced an issue with some modules not being documented because of a NullPointerException during the process of UML Graph generation.

What I saw during my investigations is that the field member collectionClassDoc is not properly initialized because root.classNamed("java.util.Collection") returns null in some cases where I don’t know the root cause.
So, it happen that the method ClassGraph.getInterfaceTypeArguments(ClassDoc iface, Type t) is called with the parameter iface set to null.

I didn’t get deep inside the issue but I found a workaround to fix it.

So I simply fixed the issue by replacing the line 975 of file ClassGraph.java :

        if (iface.equals(t.asClassDoc())) {

by

        if (iface != null && iface.equals(t.asClassDoc())) {

Is there a change you can integrate this fix in your next release so that I don’t use a forked version anymore?

Version class is missing

As the title says, the class Version is missing in the current master. So building classes fails, because Version.VERSION is missing.

Custom annotations instead of custom doc tags

Rather than javadoc doc tags, perhaps use custom annotations (since you're targetting JDK5+ anyway) that way we won't get warnings that the tag is unknown in javadoc and we can make it type safe.

Remove javadoc warnings when

The source code requires fixing to remove numerous javadoc warnings.

  [javadoc] src/main/java/org/umlgraph/doclet/ClassGraph.java:132: warning: no @param for opt
  [javadoc] src/main/java/org/umlgraph/doclet/ClassGraph.java:132: warning: no @param for r
  [javadoc] src/main/java/org/umlgraph/doclet/ClassGraph.java:132: warning: no @return
  [javadoc] src/main/java/org/umlgraph/doclet/ClassGraph.java:156: warning: no @param for s
  [javadoc] src/main/java/org/umlgraph/doclet/ClassGraph.java:156: warning: no @return
  [javadoc] src/main/java/org/umlgraph/doclet/ClassGraph.java:187: warning: no @param for s
  [javadoc] src/main/java/org/umlgraph/doclet/ClassGraph.java:187: warning: no @return
  [javadoc] src/main/java/org/umlgraph/doclet/ClassGraph.java:206: warning: no @param for opt
  [javadoc] src/main/java/org/umlgraph/doclet/ClassGraph.java:206: warning: no @param for s
  [javadoc] src/main/java/org/umlgraph/doclet/ClassGraph.java:206: warning: no @return
  [javadoc] src/main/java/org/umlgraph/doclet/ClassGraph.java:231: warning: no @param for opt
  [javadoc] src/main/java/org/umlgraph/doclet/ClassGraph.java:239: warning: no @param for opt
  [javadoc] src/main/java/org/umlgraph/doclet/ClassGraph.java:239: warning: no @param for e
  [javadoc] src/main/java/org/umlgraph/doclet/ClassGraph.java:239: warning: no @return
  [javadoc] src/main/java/org/umlgraph/doclet/ClassGraph.java:255: warning: no @param for opt
  [javadoc] src/main/java/org/umlgraph/doclet/ClassGraph.java:255: warning: no @param for p
  [javadoc] src/main/java/org/umlgraph/doclet/ClassGraph.java:255: warning: no @return
  [javadoc] src/main/java/org/umlgraph/doclet/ClassGraph.java:266: warning: no @param for opt
  [javadoc] src/main/java/org/umlgraph/doclet/ClassGraph.java:266: warning: no @param for t
  [javadoc] src/main/java/org/umlgraph/doclet/ClassGraph.java:266: warning: no @return
  [javadoc] src/main/java/org/umlgraph/doclet/ClassGraph.java:277: warning: no @param for opt
  [javadoc] src/main/java/org/umlgraph/doclet/ClassGraph.java:277: warning: no @param for t
  [javadoc] src/main/java/org/umlgraph/doclet/ClassGraph.java:277: warning: no @return
  [javadoc] src/main/java/org/umlgraph/doclet/ClassGraph.java:293: warning: no @param for opt
  [javadoc] src/main/java/org/umlgraph/doclet/ClassGraph.java:293: warning: no @param for t
  [javadoc] src/main/java/org/umlgraph/doclet/ClassGraph.java:293: warning: no @return
  [javadoc] src/main/java/org/umlgraph/doclet/ClassGraph.java:304: warning: no @param for opt
  [javadoc] src/main/java/org/umlgraph/doclet/ClassGraph.java:304: warning: no @param for fd
  [javadoc] src/main/java/org/umlgraph/doclet/ClassGraph.java:325: warning: no @param for opt
  [javadoc] src/main/java/org/umlgraph/doclet/ClassGraph.java:325: warning: no @param for m
  [javadoc] src/main/java/org/umlgraph/doclet/ClassGraph.java:325: warning: no @return
  [javadoc] src/main/java/org/umlgraph/doclet/ClassGraph.java:345: warning: no @param for opt
  [javadoc] src/main/java/org/umlgraph/doclet/ClassGraph.java:345: warning: no @param for m
  [javadoc] src/main/java/org/umlgraph/doclet/ClassGraph.java:345: warning: no @return
  [javadoc] src/main/java/org/umlgraph/doclet/ClassGraph.java:370: warning: no @param for opt
  [javadoc] src/main/java/org/umlgraph/doclet/ClassGraph.java:404: warning: no @param for opt
  [javadoc] src/main/java/org/umlgraph/doclet/ClassGraph.java:404: warning: no @param for c
  [javadoc] src/main/java/org/umlgraph/doclet/ClassGraph.java:404: warning: no @param for align
  [javadoc] src/main/java/org/umlgraph/doclet/ClassGraph.java:416: warning: no @param for c
  [javadoc] src/main/java/org/umlgraph/doclet/ClassGraph.java:416: warning: no @return
  [javadoc] src/main/java/org/umlgraph/doclet/ClassGraph.java:442: warning: no @param for s
  [javadoc] src/main/java/org/umlgraph/doclet/ClassGraph.java:442: warning: no @return
  [javadoc] src/main/java/org/umlgraph/doclet/ClassGraph.java:460: warning: no @param for c
  [javadoc] src/main/java/org/umlgraph/doclet/ClassGraph.java:460: warning: no @param for rootClass
  [javadoc] src/main/java/org/umlgraph/doclet/ClassGraph.java:460: warning: no @return
  [javadoc] src/main/java/org/umlgraph/doclet/ClassGraph.java:611: warning: no @param for c
  [javadoc] src/main/java/org/umlgraph/doclet/ClassGraph.java:611: warning: no @return
  [javadoc] src/main/java/org/umlgraph/doclet/ClassGraph.java:625: warning: no @param for opt
  [javadoc] src/main/java/org/umlgraph/doclet/ClassGraph.java:625: warning: no @param for rt
  [javadoc] src/main/java/org/umlgraph/doclet/ClassGraph.java:655: warning: no @param for opt
  [javadoc] src/main/java/org/umlgraph/doclet/ClassGraph.java:655: warning: no @param for rt
  [javadoc] src/main/java/org/umlgraph/doclet/ClassGraph.java:655: warning: no @param for tailLabel
  [javadoc] src/main/java/org/umlgraph/doclet/ClassGraph.java:655: warning: no @param for label
  [javadoc] src/main/java/org/umlgraph/doclet/ClassGraph.java:655: warning: no @param for headLabel
  [javadoc] src/main/java/org/umlgraph/doclet/ClassGraph.java:685: warning: no @param for opt
  [javadoc] src/main/java/org/umlgraph/doclet/ClassGraph.java:685: warning: no @param for rt
  [javadoc] src/main/java/org/umlgraph/doclet/ClassGraph.java:685: warning: no @param for tailLabel
  [javadoc] src/main/java/org/umlgraph/doclet/ClassGraph.java:685: warning: no @param for label
  [javadoc] src/main/java/org/umlgraph/doclet/ClassGraph.java:685: warning: no @param for headLabel
  [javadoc] src/main/java/org/umlgraph/doclet/ClassGraph.java:695: warning: no @param for c
  [javadoc] src/main/java/org/umlgraph/doclet/ClassGraph.java:695: warning: no @return
  [javadoc] src/main/java/org/umlgraph/doclet/ClassGraph.java:707: warning: no @return
  [javadoc] src/main/java/org/umlgraph/doclet/ClassGraph.java:718: warning: no @param for c
  [javadoc] src/main/java/org/umlgraph/doclet/ClassGraph.java:768: warning: no @param for root
  [javadoc] src/main/java/org/umlgraph/doclet/ClassGraph.java:806: warning: no description for @param
  [javadoc] src/main/java/org/umlgraph/doclet/ClassGraph.java:817: warning: no description for @param
  [javadoc] src/main/java/org/umlgraph/doclet/ClassGraph.java:819: warning: no @param for c
  [javadoc] src/main/java/org/umlgraph/doclet/ClassGraph.java:856: warning: no description for @param
  [javadoc] src/main/java/org/umlgraph/doclet/ClassGraph.java:869: warning: no @param for c
  [javadoc] src/main/java/org/umlgraph/doclet/ClassGraph.java:869: warning: no @return
  [javadoc] src/main/java/org/umlgraph/doclet/ClassGraph.java:877: warning: no description for @param
  [javadoc] src/main/java/org/umlgraph/doclet/ClassGraph.java:879: warning: no @param for c
  [javadoc] src/main/java/org/umlgraph/doclet/ClassGraph.java:947: warning: no @param for <T>
  [javadoc] src/main/java/org/umlgraph/doclet/ClassGraph.java:947: warning: no @param for docs
  [javadoc] src/main/java/org/umlgraph/doclet/ClassGraph.java:947: warning: no @param for visibility
  [javadoc] src/main/java/org/umlgraph/doclet/ClassGraph.java:947: warning: no @return
  [javadoc] src/main/java/org/umlgraph/doclet/ClassGraph.java:1012: warning: no @param for name
  [javadoc] src/main/java/org/umlgraph/doclet/ClassGraph.java:1012: warning: no @return
  [javadoc] src/main/java/org/umlgraph/doclet/ClassGraph.java:1021: warning: no @param for cd
  [javadoc] src/main/java/org/umlgraph/doclet/ClassGraph.java:1021: warning: no @param for rootClass
  [javadoc] src/main/java/org/umlgraph/doclet/ClassGraph.java:1021: warning: no @return
  [javadoc] src/main/java/org/umlgraph/doclet/ClassGraph.java:1085: warning: no @param for className
  [javadoc] src/main/java/org/umlgraph/doclet/ClassGraph.java:1085: warning: no @return
  [javadoc] src/main/java/org/umlgraph/doclet/ClassGraph.java:1103: warning: no @param for className
  [javadoc] src/main/java/org/umlgraph/doclet/ClassGraph.java:1103: warning: no @return
  [javadoc] src/main/java/org/umlgraph/doclet/ClassGraph.java:1117: warning: no description for @throws
  [javadoc] src/main/java/org/umlgraph/doclet/ClassGraph.java:1197: warning: no @param for opt
  [javadoc] src/main/java/org/umlgraph/doclet/ClassGraph.java:1211: warning: no @param for opt
  [javadoc] src/main/java/org/umlgraph/doclet/ClassGraph.java:1242: warning: no description for @param
  [javadoc] src/main/java/org/umlgraph/doclet/ClassGraph.java:1243: warning: no description for @param
  [javadoc] src/main/java/org/umlgraph/doclet/ClassGraph.java:1244: warning: no description for @param
  [javadoc] src/main/java/org/umlgraph/doclet/ClassGraph.java:1245: warning: no description for @return
  [javadoc] src/main/java/org/umlgraph/doclet/ClassGraph.java:1275: warning: no @return
  [javadoc] src/main/java/org/umlgraph/doclet/ClassMatcher.java:32: warning: no @param for cd
  [javadoc] src/main/java/org/umlgraph/doclet/ClassMatcher.java:32: warning: no @return
  [javadoc] src/main/java/org/umlgraph/doclet/ClassMatcher.java:37: warning: no @param for name
  [javadoc] src/main/java/org/umlgraph/doclet/ClassMatcher.java:37: warning: no @return
  [javadoc] src/main/java/org/umlgraph/doclet/ContextMatcher.java:83: warning: no description for @param
  [javadoc] src/main/java/org/umlgraph/doclet/ContextMatcher.java:102: warning: no description for @param
  [javadoc] src/main/java/org/umlgraph/doclet/ContextMatcher.java:63: warning: no description for @throws

doclet in maven-javadoc-plugin with JDK10 - complains invalid tag "-author"?

Hi,

I'm seeing the following when building with Maven 3.5.4 and maven-javadoc-plugin 3.0.1 with Maven using Java 10.0.1 (on Linux Mint, dot - graphviz version 2.38.0 (20140413.2041)).

org.apache.maven.reporting.MavenReportException: 
Exit code: 1 - javadoc: warning - The old Doclet and Taglet APIs in the packages
com.sun.javadoc, com.sun.tools.doclets and their implementations
are planned to be removed in a future JDK release. These
components have been superseded by the new APIs in jdk.javadoc.doclet.
Users are strongly recommended to migrate to the new APIs.
javadoc: error - invalid flag: -author

If I comment out the doclet then the build succeeds, so while I've github-searched this repo for 'author' and can find no relevant reference, the issue appears somewhere in here.

It's not a show-stopper for Maven users - if they use toolchains for their own code and set the Java version Maven uses to <= 1.9 then all's good. But JDK's have a limited shelf life these days.

Error message above is a strong indication of Oracle aggressive approach to advancing the platform while still purporting backwards compatibility - stuff that's been relied on for a decade or more, deprecated and then broken/borken rather too quickly.

In all seriousness, this doclet running in a Maven build, is the only reason I bother to generate JavaDoc. It's UML loveliness is widely spread (e.g. https://www.javadoc.io/doc/io.earcam.wrapped/com.sun.tools.attach/1.8.0_jdk8u172-b11 or even better https://static.javadoc.io/io.earcam.wrapped/jdk.compiler/1.8.132/com/sun/tools/javac/tree/package-summary.html large monitor required 😀)

Side note; regarding issue #46 - things have got a lot easier WRT Maven releases, I'd be more than happy to help resolve that issue and this.

Thank you 👍

Warning, could not find a line that matches the pattern '(Class|Interface|Enum)'. Class diagram reference not inserted

Hi,

Nice tool!

But when I execute this in maven project on Travis, I always have this issues during the generation of the javadoc :

Warning, could not find a line that matches the pattern '(Class|Interface|Enum) Gpio.*'.
Class diagram reference not inserted

See the build #135 in me repository : https://travis-ci.org/ericpinet/ConnectLife

I setup the UMLGraph with maven like this:

      <!-- Javadoc -->
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-javadoc-plugin</artifactId>
        <version>2.10.3</version>
        <configuration>
          <excludePackageNames>com.connectlife.test</excludePackageNames>
          <doclet>org.umlgraph.doclet.UmlGraphDoc</doclet>
          <docletArtifact>
            <groupId>org.umlgraph</groupId>
            <artifactId>doclet</artifactId>
            <version>5.1</version>
          </docletArtifact>
          <additionalparam>-all -view -views</additionalparam>
          <useStandardDocletOptions>true</useStandardDocletOptions>
        </configuration>
      </plugin>

Why the pattern is not match? The javadoc plugin version isn't compatible with this doclet?

Handle missing tools.jar

According to this SO answer "Tools.jar was removed in JDK 9.

JEP 220 removed the well-known and frequently-referenced JARs rt.jar and tools.jar. According to it's description, "The class and resource files previously stored in lib/rt.jar, lib/tools.jar, lib/dt.jar, and various other internal jar files will now be stored in a more efficient format in implementation-specific files in the lib directory."

maven build seems to be broken

Hi, i want to build an maven artifact from the current HEAD, but it doesnt seem to work.

I couldn't find any documentation how to do the maven build so i tried to figure out by reading the make- and pom-file.

I runned "ant pom" first and "mvn package" then. But the resulting file ("target/umlgraph-5.6.4-SNAPSHOT.jar") doesn't have any classes. The problem is, that the source lies directly under src but maven expects it on src/main/java.

I think can fix this by myself and may issue an pull request after that if you want. But therefore i want let you know about this bug.

Kind Regards,
Michael

@opt is ignored

Any option setting in javadoc headers seem to be ignored. Example:

These options have no effect on a class. Using other tags like "@Composed 1 has * Vehicle" works fine.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.