GSON n’est pas importé dans le projet maven

Je reçois l’erreur suivante – J’ai ajouté le GSon dans ma dépendance –

Est-ce que quelqu’un peut indiquer ce que je fais mal?

entrez la description de l'image ici

Edit: dépendance spécifiée –

 com.google.code.gson gson 1.7.1  

J’utilise le code suivant dans mon sevlet –

  JSONService json = new JSONService(); Ssortingng json_output = json.makeLoginJSON(user); 

makeLoginJSON —

  public Ssortingng makeLoginJSON(LoginDetails user) { Ssortingng FinalJson = null; Gson gson = new Gson(); FinalJson = gson.toJson(user); return FinalJson; } 

Essayer:

  com.google.code.gson gson 2.1 provided  

J’ai édité mon commentaire et ajouté la scope. L’étendue par défaut est comstackr , ce qui signifie que la dépendance n’est pas présente au moment de l’exécution. Pour cela, vous utilisez la scope fournie . En savoir plus sur les scopes dans les dépendances maven sur Introduction aux dépendances Maven dans Apache.

J’espère que cela résoudra votre problème.

PS: si vous créez votre propre référentiel, vous devriez également jeter un oeil ici .

Juste une précision sur la réponse de Raul – bien que cela fonctionne pour vous, mais il est fourni pour les dépendances qui devraient être disponibles à partir de JRE / JDK, c’est-à-dire les classes de servlet. Comstackr est la valeur par défaut et devrait fonctionner dans les cas des autres personnes, car le gson n’est pas disponible depuis un JRE, il doit plutôt être téléchargé par maven. De http://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html#Dependency_Scope :

comstack Il s’agit de la scope par défaut, utilisée si aucune n’est spécifiée. Les dépendances de compilation sont disponibles dans tous les chemins de classes d’un projet. De plus, ces dépendances sont propagées aux projets dépendants.

Cela ressemble beaucoup à la compilation, mais indique que vous vous attendez à ce que le JDK ou un conteneur fournisse la dépendance au moment de l’exécution. Par exemple, lors de la création d’une application Web pour Java Enterprise Edition, vous devez définir la dépendance de l’API Servlet et des API Java EE associées sur la scope fournie, car le conteneur Web fournit ces classes. Cette scope est uniquement disponible sur le chemin de classe de compilation et de test et n’est pas transitive.

runtime Cette étendue indique que la dépendance n’est pas requirejse pour la compilation, mais pour l’exécution. C’est dans les classpaths d’exécution et de test, mais pas le classpath de compilation.

test Cette étendue indique que la dépendance n’est pas requirejse pour une utilisation normale de l’application et n’est disponible que pour les phases de compilation et d’exécution du test.

system Cette étendue est similaire à fournie sauf que vous devez fournir le fichier JAR qui le contient explicitement. L’artefact est toujours disponible et n’est pas recherché dans un référentiel.

import (disponible uniquement dans Maven 2.0.9 ou version ultérieure) Cette étendue est uniquement utilisée pour une dépendance de type pom dans la section. Cela indique que le POM spécifié doit être remplacé par les dépendances de la section de ce POM. Dans la mesure où elles sont remplacées, les dépendances avec une étendue d’importation ne participent pas réellement à la limitation de la transitivité d’une dépendance.

Essayer:

  com.alibaba fastjson 1.1.21  

Très rapide, simple à utiliser.

 VO obj = ...; Ssortingng jsonSsortingng = JSON.toJSONSsortingng(obj); VO obj2 = JSON.parseObject(jsonSsortingng, VO.class);