[英]Maven error using Dropwizard with Mongodb
我试图让Dropwizard与MongoDB一起工作。 但是,当我运行mvn install
时,我收到一个奇怪的maven错误。
Dependency convergence error for org.codehaus.jackson:jackson-mapper-asl:1.9.5 paths to dependency are:
+-no.asgari:civilization:1.0-SNAPSHOT
+-net.vz.mongodb.jackson:mongo-jackson-mapper:1.4.2
+-org.codehaus.jackson:jackson-mapper-asl:1.9.5
and
+-no.asgari:civilization:1.0-SNAPSHOT
+-net.vz.mongodb.jackson:mongo-jackson-mapper:1.4.2
+-de.undercouch:bson4jackson:1.3.0
+-org.codehaus.jackson:jackson-mapper-asl:1.7.4
我的pom看起来像这样:
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<dropwizard.version>0.7.1</dropwizard.version>
</properties>
<repositories>
<repository>
<id>sonatype-nexus-snapshots</id>
<name>Sonatype Nexus Snapshots</name>
<url>http://oss.sonatype.org/content/repositories/snapshots</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>io.dropwizard</groupId>
<artifactId>dropwizard-core</artifactId>
<version>${dropwizard.version}</version>
</dependency>
<dependency>
<groupId>io.dropwizard</groupId>
<artifactId>dropwizard-views-freemarker</artifactId>
<version>${dropwizard.version}</version>
</dependency>
<dependency>
<groupId>io.dropwizard</groupId>
<artifactId>dropwizard-assets</artifactId>
<version>${dropwizard.version}</version>
</dependency>
<!-- !dropwizard -->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>3.11-beta1</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>3.11-beta1</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-examples</artifactId>
<version>3.11-beta1</version>
</dependency>
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>17.0</version>
</dependency>
<dependency>
<groupId>net.vz.mongodb.jackson</groupId>
<artifactId>mongo-jackson-mapper</artifactId>
<version>1.4.2</version>
</dependency
这只是我pom的一部分。 除了测试,没有其他依赖项。
如果您不使用Spring或其他与MongoDB无缝集成的第三方库,则可以将MongoJack用作杰克逊映射器。
步骤1-Maven依赖项:
<dependency>
<groupId>org.mongojack</groupId>
<artifactId>mongojack</artifactId>
<version>2.1.0</version>
<type>bundle</type>
</dependency>
第2步-存储库:
<repositories>
<repository>
<id>oss-sonatype</id>
<name>oss-sonatype</name>
<url>https://oss.sonatype.org/content/repositories/snapshots/</url>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
第3步-映射POJO:
public class MyObject {
private String id;
@ObjectId
@JsonProperty("_id")
public String getId() {
return id;
}
@ObjectId
@JsonProperty("_id")
public void setId(String id) {
this.id = id;
}
}
步骤4-插入:
JacksonDBCollection<MyObject, String> coll = JacksonDBCollection.wrap(dbCollection, MyObject.class,
String.class);
MyObject myObject = ...
WriteResult<MyObject, String> result = coll.insert(myObject);
String id = result.getSavedId();
MyObject savedObject = result.getSavedObject();
第5步-查询:
MyObject foundObject = coll.findOneById(id);
可以在MongoJack官方网站上找到上述示例的其他示例和详细说明。
另外,如果您可以选择使用Spring,请查看Spring-Data-MongoDB项目
编辑:阅读一会后,我发现您使用的映射器实际上是MongoJack的较旧版本。 因此,升级您的代码以使用它的更新版本肯定会给您的项目带来好处。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.