web-dev-qa-db-fra.com

Jak wyłączyć sprawdzanie poprawności pom.xml w IntelliJ IDEA

Uywam buildnumber-maven-plugin , abz uzyskać zestaw zmian Mercurial jako numer kompilacji projektu:

<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>

Następnie używam właściwości ${changeSet}, aby ustawić właściwość build.number avec tym samym pom.xml:

<build.number>${changeSet}</build.number>

Jednak IntelliJ IDEA si vous voulez, le Cannot resolve symbol 'changeSet':

enter image description here

Ponadto główny moduł i pliki pom.xml, których to dotyczy, il est en train de télécharger un mot-clé.

Spróbowałem wszystkich oferowanychAlt  +  Enteropcje i konfiguracje Mavena w Ustawieniach; nic nie pomogło.

Vous êtes le premier à signer un livre, puis un livre de musique si vous cherchez des idées. Jakieś sugestie?

IDE i środowisko:

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
24
Dragan Bozanovic

Oui, ça a l'air cassé

Intéressant. J'ai testé ce comportement dans IntelliJ IDEA Ultimate 14.1.7 ainsi que dans IntelliJ IDEA Community 2016.1.2 et des propriétés que IDEA ne connaît pas s'affichent toujours en rouge, même avec toutes les inspections Maven désactivés. Cela semble être un bogue (ou pour le dire de manière plus charitable, une fonctionnalité non implémentée) dans IDEA, que l'erreur générée lorsqu'elle ne peut pas identifier une propriété n'est pas contrôlée par les paramètres d'inspection.

Il y a quelques problèmes liés dans le suivi des bogues d'IDEA:

Il existe également un article sur un problème similaire sur le forum de support JetBrains:

Une solution de contournement possible

Il existe une solution de contournement dans les commentaires de IDEA-96358 ainsi que dans le message de support. Vous pouvez ajouter une version fictive de vos propriétés dynamiques dans Paramètres/Construire, Exécution, Outils de développement/Construire/Maven/Coureur/Propriétés, comme sur cette capture d'écran:  Screenshot of setting Maven Runner Properties

Mettre des valeurs dedans will informer IDEA à leur sujet afin qu’elles ne soient pas surlignées en rouge. Cependant, lors de mes tests, j'ai constaté que, puisque IDEA transmettait les valeurs en tant que propriétés à Maven, le plugin buildnumber-plugin ne les écrasait pas et que je voyais plutôt ma valeur factice lorsque j'ai essayé de l'utiliser. (La seule façon dont j'ai testé l'utilisation était dans un objectif d'évaluation de maven-help-plugin, mais cela fonctionne peut-être lorsque vous l'utilisez d'une autre manière?) Afin de pouvoir utiliser la valeur définie de manière dynamique, dans ma configuration de construction spécifique I décoché la case "Utiliser les paramètres du projet" et supprimé la propriété fictive, comme dans cette capture d'écran:  Screenshot of removing property from specific build configuration

La solution commence à être assez ennuyeuse, car si vous avez beaucoup de configurations de construction Maven et que vous pouvez utiliser la même configuration pour les mêmes paramètres de coureur, vous devez maintenant dupliquer la "vraie" configuration que vous souhaitez. Chaque configuration et la valeur par défaut dans la boîte de dialogue des paramètres du projet ne concernent que les valeurs "factices" afin que IDEA sache qu'elle ne doit pas traiter le référencement de cette propriété comme une erreur. Cela nécessite également que vous exécutiez toutes vos commandes Maven via des configurations de construction, et non par d'autres moyens, comme un double-clic sur les cycles de vie dans la fenêtre de l'outil "Projets Maven". Bien que si vous avez peu de configurations de construction, c'est la seule façon dont vous exécutez Maven depuis IDEA, et la couleur rouge lors de la modification de votre fichier pom.xml vous gêne assez, cette solution de contournement est peut-être un compromis acceptable pour vous.

Prochaines étapes

Comme il semble que la fonctionnalité intégrée d'IDEA ne couvre pas vraiment les propriétés générées dynamiquement, je pense que le seul moyen de résoudre ce problème est de convaincre JetBrains de le faire, à moins qu'il ne soit possible d'ajouter la fonctionnalité dans un plugin tiers. (qui dépasse maintenant largement mon expertise). Je suggérerais soit de voter pour l'un des tickets du système de suivi JIRA que j'ai mentionné, soit de le commenter, soit de créer le vôtre si vous pensez que votre problème est suffisamment différent (ce qui peut être le cas). Vous pouvez également contacter le support technique de JetBrains, en particulier si vous avez souscrit un abonnement payant. Bien que je soupçonne qu’ils ont de nombreuses priorités sur lesquelles travailler (comme nous tous), je soupçonne également qu’un plus grand nombre de personnes demandant quelque chose augmente le risque que l’arriéré atteigne le sommet de leur arriéré. Demander gentiment quelque chose fait rarement mal.

22
Peter Cooper Jr.

Comme cela fonctionne bien. Je pense que ce serait un cache ou peut-être un petit bug qui n'a pas d'effet majeur donnant quelques informations. Je veux donc vous suggérer quelques options

Suggestion-1:

Vous pouvez reconstruire votre projet et ensuite vérifier

Build > Rebuild Project

Suggestion-2:

Vous pouvez vider les caches de votre ide

  1. File -> invalidate caches
  2. Alors Restart application

Suggestion-3:

Parfois, une astuce idiote peut résoudre le problème.

  1. Clic droit sur l'éditeur de code
  2. Survolez Maven et développez
  3. Cliquez sur réimporter

Suggestion-4:

Il y a plusieurs façons de résoudre le problème et de discuter de ce qui se passe version par version. Vous pouvez passer par

L'inspection IntelliJ donne "Impossible de résoudre le symbole" mais compile toujours le code

Suggestion-5:

Vous pouvez essayer Le blog de Michał Wróbel: Impossible de résoudre le symbole XYZ dans IntelliJ bien que maven crée correctement les sources

Suggestion-6:

Vous pouvez également disable reading pom.xml à chaque petite modification dans IntelliJ Idea: Intellij IDEA et Maven, désactiver la lecture de pom.xml lors de chaque petite modification, même sans sauvegarde

3
SkyWalker

Essayez Fichier -> Paramètres -> Editeur -> Inspections -> décochez "Inspection de modèle Maven" et appliquez.

2
Arthur Eirich

Z szacunkiem żadne rozwiązania SkyWalkers nie działały dla mnie.

Ale à jedno:

Po prostu dodaj à powyżej linii właściwości:

<!--suppress UnresolvedMavenProperty -->

Więc otrzymasz:

<!--suppress UnresolvedMavenProperty -->
<git.version>${git.commit.time}.${git.commit.id.abbrev}</git.version>
0
Lawrence

La question demande comment désactiver la vérification en raison du bogue IntelliJ non résolu causant de fausses erreurs pour la syntaxe "$ {dynamic.variable}" dans les variables dynamiques pom.xml.

Au lieu de cela, voici une solution de contournement pour le bogue, donc la fausse notification d'erreur disparaît et le maven accepte toujours la variable et tout le monde est content:

Modifiez la syntaxe des variables dans cet ordre (sans blague): 1. "$ {dynamic.variable}" 2. "{dynamic.variable}" 3. "{$ dynamic.variable}"

IntelliJ va maintenant l'accepter comme correcte et maven va également analyser et accepter la variable dynamique sans problème. C'est évidemment une syntaxe maven non documentée qui, pour une raison quelconque, a été implémentée comme syntaxe correcte et unique dans IntelliJ IDE.

J'espère que cela aide tout le monde, même s'il ne répond pas à la question posée, mais élimine la raison de la poser.

S'amuser :)

0
TheUnseen