我想用一个来自storm contrib的simplemongobolt。我下载了源代码,进入storm contrib mongo目录并运行mvn包和mvn安装。一切正常,intellij能够在编码时解决问题。但是,当我尝试构建我的项目时,它会尝试在外部存储库中为这个库找到pom。当它找不到它时,它就失败了。我需要怎么做才能解决这个问题?
<?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>
<groupId>StormTest</groupId>
<artifactId>StormTest</artifactId>
<version>1.0</version>
<packaging>jar</packaging>
<name>StormTest</name>
<repositories>
<repository>
<id>clojars.org</id>
<url>http://clojars.org/repo</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>storm</groupId>
<artifactId>storm</artifactId>
<version>0.7.2</version>
<scope>Test</scope>
</dependency>
<dependency>
<groupId>com.rapportive</groupId>
<artifactId>storm-amqp-spout</artifactId>
<version>0.1.1</version>
</dependency>
<dependency>
<groupId>com.rapportive</groupId>
<artifactId>storm-json</artifactId>
<version>0.0.1</version>
</dependency>
<dependency>
<groupId>storm</groupId>
<artifactId>storm-contrib-mongo</artifactId>
<version>0.1-SNAPSHOT</version>
</dependency>
</dependencies>
</project>
2条答案
按热度按时间pgvzfuti1#
《暴风城》中的simplemongobolt其实已经过时了。我自己更新了模块并提交了一个pull请求,这个请求还没有被合并。目前,您可以从我的storm contrib fork检索更新的代码。
xbp102n02#
您可以尝试检查是否在项目pom中定义了正确的依赖项,并将它们与storm工件1进行比较。groupid、artifactid和version必须相同,否则maven将尝试从外部存储库下载它,可能会失败,因为它从未安装在任何公共maven repo上。
安装工件时,它会转到user directory/.m2/repository/group/id/path/artifact/id/path/version。
对于storm amqp喷口,您应该将其放在:user directory/.m2/repository/com/reportive/storm amqp喷口/0.1.1文件夹中。
在那里你应该有几个文件:
jar本身(如果它打包为jar文件)。
pom.xml文件(与您为项目创建的、用于构建和安装它的文件相同)。
可以选择上面两个的sha1文件。
如果您没有它们,那么您可能在将工件安装到存储库中时犯了一些错误。您可以尝试再次安装它,或者从工件源目录复制它来手动创建pom。
如果有正确的pom.xml,我就没有真正的想法,因为我从未使用过intellij(idea?;))。