Let me be more precise here; the dependency:analyze seems to miss a whole group of references to static fields. Both static imports and references to fields. In my code sample, I can do the following:
javap -v bar/BarMain.class Classfile bar/BarMain.class Last modified 25.nov.2015; size 583 bytes MD5 checksum 02168be555cf779b31a4790f97b202a7 Compiled from "BarMain.java" public class bar.BarMain minor version: 0 major version: 49 flags: ACC_PUBLIC, ACC_SUPER Constant pool: #1 = Class #23 // foo/Main #2 = Methodref #9.#24 // java/lang/Object."<init>":()V #3 = Fieldref #25.#26 // java/lang/System.out:Ljava/io/PrintStream; #4 = String #27 // SC compile #5 = Methodref #28.#29 // java/io/PrintStream.println:(Ljava/lang/String;)V #6 = Class #30 // foo/Test2 #7 = String #31 // AZ 42 #8 = Class #32 // bar/BarMain #9 = Class #33 // java/lang/Object #10 = Utf8 <init> #11 = Utf8 ()V #12 = Utf8 Code #13 = Utf8 LineNumberTable #14 = Utf8 LocalVariableTable #15 = Utf8 this #16 = Utf8 Lbar/BarMain; #17 = Utf8 main #18 = Utf8 ([Ljava/lang/String;)V #19 = Utf8 args #20 = Utf8 [Ljava/lang/String; #21 = Utf8 SourceFile #22 = Utf8 BarMain.java #23 = Utf8 foo/Main #24 = NameAndType #10:#11 // "<init>":()V #25 = Class #34 // java/lang/System #26 = NameAndType #35:#36 // out:Ljava/io/PrintStream; #27 = Utf8 SC compile #28 = Class #37 // java/io/PrintStream #29 = NameAndType #38:#39 // println:(Ljava/lang/String;)V #30 = Utf8 foo/Test2 #31 = Utf8 AZ 42 #32 = Utf8 bar/BarMain #33 = Utf8 java/lang/Object #34 = Utf8 java/lang/System #35 = Utf8 out #36 = Utf8 Ljava/io/PrintStream; #37 = Utf8 java/io/PrintStream #38 = Utf8 println #39 = Utf8 (Ljava/lang/String;)V { public bar.BarMain(); descriptor: ()V flags: ACC_PUBLIC Code: stack=1, locals=1, args_size=1 0: aload_0 1: invokespecial #2 // Method java/lang/Object."<init>":()V 4: return LineNumberTable: line 25: 0 LocalVariableTable: Start Length Slot Name Signature 0 5 0 this Lbar/BarMain; public static void main(java.lang.String[]); descriptor: ([Ljava/lang/String;)V flags: ACC_PUBLIC, ACC_STATIC Code: stack=2, locals=1, args_size=1 0: getstatic #3 // Field java/lang/System.out:Ljava/io/PrintStream; 3: ldc #4 // String SC compile 5: invokevirtual #5 // Method java/io/PrintStream.println:(Ljava/lang/String;)V 8: getstatic #3 // Field java/lang/System.out:Ljava/io/PrintStream; 11: ldc #7 // String AZ 42 13: invokevirtual #5 // Method java/io/PrintStream.println:(Ljava/lang/String;)V 16: return LineNumberTable: line 28: 0 line 29: 8 line 30: 16 LocalVariableTable: Start Length Slot Name Signature 0 17 0 args [Ljava/lang/String; } SourceFile: "BarMain.java" As we can see the "import" class "foo/Test" is item #6/#30 and referenced in the constant pool for the BarMain class. The dependency analyzer does not seem to catch this. I'm a bit of a n00b in this regard, anyone have any tips on how to do this ? Kristian --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org For additional commands, e-mail: dev-h...@maven.apache.org