Wie zu deaktivieren pom.xml Validierung in IntelliJ IDEA
Ich bin mit buildnumber-maven-plugin zu bekommen Mercurial-changeset als Projekt-build-Nummer:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>buildnumber-maven-plugin</artifactId>
<version>1.2</version>
<executions>
<execution>
<phase>initialize</phase>
<goals>
<goal>hgchangeset</goal>
</goals>
</execution>
</executions>
</plugin>
Dann benutze ich ${changeSet}
Eigenschaft build.number
Eigenschaft in der gleichen pom.xml
:
<build.number>${changeSet}</build.number>
Jedoch, IntelliJ IDEA beschwert sich, dass es Cannot resolve symbol 'changeSet'
:
Auch, das Modul root und die betroffenen pom.xml
Dateien sind rot Unterstrichen im Projekt tool-Fenster.
Ich habe versucht, alle die angeboten, die Alt+Enter Optionen und Maven-Konfigurationen in den Einstellungen, nichts half.
Alles baut sich auf und funktioniert einwandfrei, ich will einfach nur, um loszuwerden, das lästige Fehler in der IDE. Jede Anregung?
IDE und Umwelt:
IntelliJ IDEA 2016.1.2
Build #IC-145.972, built on May 14, 2016
JRE: 1.8.0_65-b17 amd64
JVM: Java HotSpot(TM) 64-Bit Server VM by Oracle Corporation
InformationsquelleAutor Dragan Bozanovic | 2016-05-25
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ja, das sieht kaputt
Interessant. Ich habe getestet dieses Verhalten in IntelliJ IDEA Ultimate Datengrundlage char varchar 14.1.7 sowie IntelliJ IDEA Community 2016.1.2 und Eigenschaften, die diese IDEE nicht kennen, zeigen noch rot auch mit allen Maven-Kontrollen ausgeschaltet. Dazu sucht man sich einen bug (oder um es deutlicher zu sagen charitably, eine implementierte Funktion) in der IDEE, dass der Fehler es gibt, wenn es nicht identifizieren kann, eine Eigenschaft, nicht kontrolliert durch den Inspektionen Einstellungen.
Gibt es ein paar Fragen die IDEE-bug-tracker:
Gibt es auch einen Beitrag über ein ähnliches Problem auf der JetBrains-support-forum:
Ein möglicher workaround
Gibt es einen workaround aufgeführt, in der sowohl die Kommentare von IDEE-96358 sowie in der Unterstützung der post. Sie können fügen Sie eine dummy-version Ihrer dynamischen Eigenschaften in Settings /Build -, Ausführungs -, Entwicklungs - /Build-Werkzeuge /Maven /Läufer /- Eigenschaften, wie in diesem screenshot:
Setzen Werte in es wird lassen IDEE über Sie wissen, so wird es nicht markieren Sie Sie in rot. Allerdings fand ich in meinen Tests, die seit der IDEE war die übergabe der Werte als Eigenschaften von Maven, waren Sie nicht immer überschrieben werden, indem die buildnumber-plugin und ich sah, wie mein dummy-Wert anstelle, wenn ich versuchte, es zu benutzen. (Die einzige Möglichkeit, die ich getestet, Sie war in einem maven-help-plugin bewerten Ziel, aber vielleicht klappt es ja, wenn Sie es auf andere Weise?) Um der Lage sein, um die Verwendung der dynamisch-Wert, in meinem spezifischen build-Konfiguration aus, die ich nicht markiert, "Projekt-Einstellungen" - box und entfernt die dummy-Eigenschaft, wie in diesem screenshot:
Dieser ist zu Beginn Recht nervig workaround, wie wenn Sie eine Menge von Maven-build-Konfigurationen, und wie die Möglichkeit für Sie alle standardmäßig für die gleichen Läufer Einstellungen, Sie würde nun duplizieren Sie die "echte" setup-Sie wollen in jeder Konfiguration, und haben Sie den Standardwert im Dialogfeld Projekteinstellungen nur für die "dummy" - Werte also, die IDEE weiß, dass es so nicht behandeln, verweisen auf die Eigenschaft als Fehler. Auch dies erfordert, dass Sie alle deine Maven-Befehle über build-Konfigurationen, und nicht über andere Mittel, wie ein Doppelklick auf Lebenszyklen in der "Maven-Projekte" - tool-Fenster. Obwohl, wenn Sie haben einige build-Konfigurationen, diese sind der einzige Weg, führen Sie Maven innerhalb IDEE, und die Farbe rot bei der Bearbeitung Ihrer pom.xml Datei ist Sie ärgerlich genug, vielleicht dieser workaround ist ein akzeptabler Kompromiss für Sie.
Weitere Schritte
Da es scheint, dass die IDEE built-in-Funktionalität nicht wirklich decken dynamisch generierte Eigenschaften, ich denke, die einzige wirkliche Möglichkeit, es zu beheben zu überzeugen, dass JetBrains, es zu tun, es sei denn, es gibt einige Weg, um die Funktionalität in einem Drittanbieter-plugin (das ist jetzt sehr viel über mein know-how). Ich würde vorschlagen, die Abstimmung und kommentieren auf eines der tickets im JIRA-tracking-system, das ich erwähnte, oder erstellen Sie Ihre eigenen, wenn Sie denken Ihr Problem ist anders genug ist (es kann sein). Vielleicht möchten Sie auch, um Kontakt JetBrains unterstützen, besonders wenn Sie ein kostenpflichtiges Abonnement mit Ihnen. Während ich vermute, dass Sie viele Prioritäten zu arbeiten (wie wir alle), ich vermute auch, dass mehr Menschen Fragen, für etwas, das erhöht die chance, es bewegt sich in Richtung der Spitze der Rückstand. Fragen, schön für etwas, was selten schadet.
Der workaround funktioniert, danke. Kann ich Leben mit dem dummy-Wert verwendet wird, in meiner lokalen Umgebung, da das build auf andere Umgebungen erfolgt mit CI-tools außerhalb der IDE sowieso.
FYI: IDEE-96358, die behoben werden sollte
InformationsquelleAutor Peter Cooper Jr.
Wie es funktioniert. Ich denke, es würde einige Caches oder möglicherweise kleinen Fehler, das hat keine großen Auswirkungen geben einige Infos. Also ich will Ihnen einige Optionen
Vorschlag-1:
Können Sie Ihr Projekt neu erstellen und dann schauen
Vorschlag-2:
Können Sie deaktivieren Sie Ihre ide-caches
File -> invalidate caches
Restart application
Vorschlag-3:
Manchmal dumme trick kann das Problem lösen.
Vorschlag 4:
Gibt es einige Möglichkeiten, um das Problem zu lösen und auch die Diskussion, was geschieht, von version zu version. Gehen Sie durch
IntelliJ Inspektion gibt "Cannot resolve symbol" aber noch kompiliert den code
Vorschlag-5:
Können Sie einen Versuch, Michał Wróbel blog: Cannot resolve symbol " XYZ " in IntelliJ obwohl maven-builds Quellen richtig
Vorschlag-6:
Können Sie auch
disable reading pom.xml
auf jedes kleine änderungen in IntelliJ Idea:Intellij IDEA und Maven, deaktivieren, Lesen pom.xml auf jede noch so kleine Veränderung, auch ohne speichern
InformationsquelleAutor SkyWalker
Versuchen Sie es mit Datei->Einstellungen->Editor->Inspektionen->Häkchen bei "Maven-Modell-Inspektion" und anwenden.
Gute Arbeit-um für 2017.2. Meine pom.xml ist jetzt abgehakt grünen oberen rechten Ecke, keine roten highlights. Wäre noch gut, wenn Jetbrains behebt das Problem aber.
Sprach zu früh. Der work-around funktioniert, wo ich bin mit diesen dynamischen Eigenschaften in der plugin-Konfiguration, aber es funktioniert nicht in meinem super-pom, wo ich die Variablen in das Projekt.Eigenschaften-Abschnitt.
InformationsquelleAutor Arthur Eirich
Die Frage fragt nach, wie Sie zum deaktivieren der überprüfung wegen der nicht fixierten IntelliJ bug, wodurch falsche Fehler, die die syntax "${dynamische.variable}" in dynamischen pom.xml Variablen.
Statt, hier ist ein workaround für den Fehler, also die falsche Fehler Meldung verschwindet und die maven-noch immer akzeptiert die variable und jeder ist glücklich:
Variable ändern syntax in dieser Reihenfolge (kein Witz):
1. "${dynamische.variable}"
2. "{dynamische.variable}"
3. "{$dynamic.variable}"
IntelliJ jetzt akzeptieren Sie es als richtig und maven wird auch Parsen, und akzeptieren Sie die dynamische variable ohne problem. Es ist offensichtlich eine nicht dokumentierte maven-syntax, die für einige Grund wurde implementiert, wie die richtige und nur syntax in IntelliJ IDE.
Ich hoffe das hilft allen, obwohl es nicht der Beantwortung der eigentlich gestellten Frage, aber entfällt der Grund für die Nachfrage, statt.
Spaß haben 🙂
InformationsquelleAutor TheUnseen
Mit Respekt, keiner von SkyWalkers Lösungen für mich gearbeitet.
Aber diese dit:
Einfach fügen Sie diese über die Eigenschaft lines:
Also werden Sie am Ende mit:
InformationsquelleAutor Lawrence