#java #xml #eclipse #maven
#java #xml #eclipse #maven
Вопрос:
Мне нужно использовать gson jar для сохранения файла POJO в java.Для этого я добавил его зависимость в Pom.xml
У меня есть этот jar в моем локальном репозитории m2
Но в инструкции import я получаю эту ошибку
Я обновил проект и очистил проект, но не решил проблему.
Затем я добавил этот jar через add external jar
При этом ошибка компиляции была устранена
Но когда я выполняю установку Maven и сборку Maven, она завершается неудачно, я получаю ошибку:
Для Gson выдается ошибка при импорте.
Добавление обновленного pom.xml
pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<artifactId>parent</artifactId>
<groupId>configurator</groupId>
<version>0.0.1-SNAPSHOT</version>
<relativePath>../parent-pom/pom.xml</relativePath>
</parent>
<groupId>com.csc.fs.accel.browser</groupId>
<artifactId>com.csc.fs.accel.browser.dictionary.rest</artifactId>
<packaging>bundle</packaging>
<name>com.csc.fs.accel.browser.dictionary.rest Blueprint Bundle</name>
<description>com.csc.fs.accel.browser.dictionary.rest OSGi blueprint bundle project.</description>
<dependencies>
<dependency>
<groupId>javax.ws.rs</groupId>
<artifactId>javax.ws.rs-api</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.csc.fs.accel.browser</groupId>
<artifactId>com.csc.fs.accel.browser.dictionary.service</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>javax.jcr</groupId>
<artifactId>jcr</artifactId>
</dependency>
<dependency>
<groupId>org.eclipse.birt.runtime</groupId>
<artifactId>org.eclipse.emf.common</artifactId>
</dependency>
<dependency>
<groupId>org.eclipse.birt.runtime</groupId>
<artifactId>org.eclipse.emf.ecore</artifactId>
</dependency>
<dependency>
<groupId>org.eclipse.birt.runtime</groupId>
<artifactId>org.eclipse.emf.ecore.xmi</artifactId>
</dependency>
<!-- <dependency>
<groupId>org.emfjson</groupId>
<artifactId>emfjson-jackson</artifactId>
<version>0.9.0</version>
</dependency> -->
<dependency>
<groupId>org.eclipselabs</groupId>
<artifactId>org.eclipselabs.emfjson</artifactId>
<version>0.8.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.csc.fs</groupId>
<artifactId>com.csc.fs.storage.service</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.csc.fs.pa</groupId>
<artifactId>com.csc.fs.pa.common.exception</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.csc.fs.pa</groupId>
<artifactId>com.csc.fs.pa.common.service</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.csc.fs.accel</groupId>
<artifactId>com.csc.fs.accel.etools.datadictionary.model</artifactId>
<version>2.0.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.csc.fs.accel</groupId>
<artifactId>com.csc.fs.accel.etools.common.usability.api</artifactId>
<version>2.0.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.csc.fs.accel</groupId>
<artifactId>com.csc.fs.accel.etools.common.model</artifactId>
<version>2.1.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
</dependency>
<dependency>
<groupId>org.osgi</groupId>
<artifactId>org.osgi.core</artifactId>
</dependency>
<dependency>
<groupId>org.eclipse.xsd</groupId>
<artifactId>xsd</artifactId>
<version>2.2.3</version>
</dependency>
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-frontend-jaxrs</artifactId>
</dependency>
<dependency>
<groupId>javax.ws.rs</groupId>
<artifactId>javax.ws.rs-api</artifactId>
</dependency>
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
</dependency>
<dependency>
<groupId>javax.ws.rs</groupId>
<artifactId>javax.ws.rs-api</artifactId>
</dependency>
<dependency>
<groupId>com.googlecode.json-simple</groupId>
<artifactId>json-simple</artifactId>
</dependency>
<dependency>
<groupId>com.csc.fs.pa</groupId>
<artifactId>
com.csc.fs.pa.allowedValue.service
</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
<version>2.3.7</version>
<extensions>true</extensions>
<configuration>
<instructions>
<Bundle-SymbolicName>${project.artifactId}</Bundle-SymbolicName>
<Bundle-Version>${project.version}</Bundle-Version>
<Export-Package>com.csc.fs.accel.browser.dictionary.rest*;version=${project.version}</Export-Package>
</instructions>
</configuration>
</plugin>
</plugins>
</build>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.csc.fs.accel</groupId>
<artifactId>
com.csc.fs.accel.etools.datadictionary.model
</artifactId>
<version>2.0.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.csc.fs.accel</groupId>
<artifactId>com.csc.fs.accel.etools.common.usability.api</artifactId>
<version>2.0.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.csc.fs.accel</groupId>
<artifactId>
com.csc.fs.accel.etools.common.model
</artifactId>
<version>2.1.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.7</version>
</dependency>
</dependencies>
</dependencyManagement>
</project>
Может кто-нибудь подсказать, чего мне не хватает или как мне устранить эту ошибку
Ответ №1:
Вы неправильно объявили зависимость. Это должно быть
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.7</version>
</dependency>
в то время groupId
<groupId>com.google.code.gson.gson</groupId>
как в конце вы получаете двойное уведомление .gson
.
Обновить:
Итак, теперь, когда вы вставили свой POM, мы можем видеть, в чем проблема. Вы указали зависимость (gson) в Dependency Managemet, а не в Dependencies. Вы также должны включить его в зависимости. Чтобы понять, что такое управление зависимостями, прочитайте mavens doc https://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html
Комментарии:
1. Я добавил зависимость, как вы предложили, затем выполнил проект обновления и сборку и установку Maven. Но все же он не принимает эту зависимость. Также в моем локальном m2 я не видел gson версии 2.7. Пожалуйста, подскажите, что мне делать дальше.
2. @FatemaRangwala
mvn clean install should
должен работать. Прикрепите свойPOM
контент к вопросу.3. @FatemaRangwala вставьте весь
POM
снимок экрана, а не скриншот … в основном вы не должны прикреплять скриншоты, как вы это делали вообще (вот почему вопрос отклонен)4. хорошо, я подумал добавить скриншот только тех частей, которые связаны с вопросом. Понял вашу точку зрения. Вставил pom.xml .
5. @FatemaRangwala и, как вы можете видеть, скриншоты в вашем случае были бесполезны,
pom
контент, с другой стороны, спас положение 🙂