2016-05-05 3 views
0

Frage wie im Titel.Ist es möglich, ein Maven Java-Projekt zu kompilieren, Java-Dateien, die Fehler enthalten, zu ignorieren und diese fehlerfrei zu kompilieren?

Es gibt große Projekte in der Entwicklung, in denen nicht alle Dateien in einem vollständigen Zustand sind. Ich weiß, Sie können skipTests, aber es scheint wie fail_never sollte das Projekt zu ermöglichen, so weit wie möglich zu kompilieren, anstatt bei der ersten Kompilierungsfehler zu stoppen.

+0

Ich weiß nicht Antwort auf Ihre Frage, aber das ist schlechte Idee, Kompilierungsfehler in einem Projekt zu haben, egal wie groß es ist. Stellen Sie CI oder etwas ein, um mit dem Problem umzugehen. – kan

+0

Meine Frage ist klar, ob dies getan werden kann, keine Frage über Praktiken. Warum postest du, wenn du es nicht weißt? – Jeff

+0

Ich hoffe, es ist unmöglich zu tun (das ist die Antwort!), Nur um die schrecklichen Praktiken zu verbieten. – kan

Antwort

0

Etwas, das mich über Java tröstet, ist, dass der Compiler, wenn es eine Klassendatei gibt, diese übergeben hat. Java ist immer noch (zuletzt überprüft) eine stark typisierte Sprache, und der Hauptzweck ist es, Fehler früh zu erkennen. Ich würde nicht die Situation von anderen Sprachen wünschen, in denen die Ausgabe der Kompilierung sogar existieren könnte, wenn es einen Kompilierfehler gab.

Ohne die Klassendatei für Klasse A kann eine Klasse B, die Klasse A verwendet, nicht korrekt kompiliert werden. Auch dies ist von Entwurf, und ein Hauptgrund, warum ich die Sprache mag.

Angesichts dieser beiden Dinge scheint mir ein gescheitertes Projekt "so weit wie möglich zu kommen" nicht nützlich. Moderne IDEs sagen Ihnen, ob Sie Kompilierungsfehler haben und ob sie auf Syntax oder andere unvollständige Quelldateien zurückzuführen sind. Was könnte dir das sonst noch geben?

+0

Ich habe Jeffs Frage vielleicht missverstanden, aber vielleicht (von meinen eigenen Momenten, solche Gedanken darüber zu haben, ob es getan werden kann) hat er sich vielleicht auf tote Klassen bezogen, die nirgendwo referenziert werden, z. Klassen, die gelöscht werden können, ohne den Code zu brechen. – Roman

+0

Möglich, obwohl die "nicht alle Dateien sind in einem vollständigen Zustand" schlägt für mich Dateien, die später abgeschlossen werden sollen, nicht, dass sie "tot" sind und nicht mehr gewartet werden. Es lässt die ganze Frage immer noch auf einer "guten Praxis" Ebene; Ich schätze, es gibt keinen besonderen Schaden daran, toten Code um Ihr Projekt herum zu hinterlassen, aber ich rate Ihnen davon nicht. Zum einen bricht es deinen Build 8>). Etwas anderes, was ich vermutlich hätte sagen sollen, ist, dass Ihr Build-Prozess Fehler generiert, von denen Sie "wissen", dass sie nur Leute (Sie selbst und/oder andere) ignorieren, die Build-Fehler ignorieren. – arcy

+0

Dies sind Klassen, die nur Ideen darstellen, die implementiert werden können oder nicht.Ich könnte den ganzen Code in ihnen auskommentieren oder sie löschen, aber die einfachste Sache ist, sie einfach so zu belassen, wie es ist, bis ich mich entscheide, was ich tun möchte. – Jeff

1

Versuch:

<build> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-compiler-plugin</artifactId> 
      <configuration> 
       <failOnError>false</failOnError> 
      </configuration> 
     </plugin> 
    </build> 
0

Versuchen Sie, die folgende maven-compiler-plugin Konfiguration:

<plugin> 
    <artifactId>maven-compiler-plugin</artifactId> 
    <executions> 
     <execution> 
      <id>default-compile</id> 
      <phase>compile</phase> 
      <goals> 
       <goal>compile</goal> 
      </goals> 
      <configuration> 
       <failOnError>false</failOnError> 
      </configuration> 
     </execution> 
    </executions> 
</plugin> 

Es ist ein sehr schlecht, obwohl die Praxis.

Verwandte Themen