1

我在 maven 项目配置方面还有另一个问题。我必须在 maven 项目中包含一个外部 .jar 文件,它也是一个 git 项目,我希望它都在远程 git repo 中。我必须逐项列出jar 是另一个 maven 项目的输出(https://github.com/perwendel/spark的克隆),但我不知道这是否真的很重要。目前我尝试使用插件,确切地说

<plugin>
<groupId>com.googlecode.addjars-maven-plugin</groupId>
<artifactId>addjars-maven-plugin</artifactId>
<version>1.0.2</version>
<executions>
    <execution>
        <goals>
            <goal>add-jars</goal>
        </goals>
        <configuration>
            <resources>
                <resource>
                    <directory>../src/main/resources/</directory>
                    <includes>
                        <include>spark-0.9.9.5.jar</include>
                    </includes>
                </resource>
            </resources>
        </configuration>
    </execution>
</executions>
</plugin>

接着

<dependency>
     <groupId>spark</groupId>
     <artifactId>spark</artifactId>
     <version>0.9.9.5</version> 
</dependency>

然后我用它的 pom.xml 和 ../src/main/resources/ git-push 主 maven 项目来完成它,但是有一些与我的本地 maven repo 相关的项目。事实上,当我 git-clone 树时由于以下原因,Maven 构建失败的另一个位置:

...

spark:spark:jar:0.9.9.5 的 POM 丢失,没有可用的依赖信息

...

...

在http://repo.maven.apache.org/maven2中找不到 spark:spark:jar:0.9.9.5被缓存#在本地存储库中失败,直到 #central 的更新间隔已过或更新后才会重新尝试解析被迫 -> [帮助 1]

我不是很喜欢 maven,我错过了什么吗?错误的插件?谢谢

4

1 回答 1

0

在我看来,您似乎不了解 Maven 的目的。Maven 的目的是定义项目之间的依赖关系。在您的情况下,要使用 spark,您只需将依赖项放入您的 pom 中,如您所述:

<dependency>
     <groupId>spark</groupId>
     <artifactId>spark</artifactId>
     <version>0.9.9.5</version> 
</dependency>

这里的问题是开发 spark 的人没有进入 Maven Central。您只需要克隆它们的 git 存储库并执行

  mvn install

之后,此版本的工件可用于您的项目。解决这类问题的方法是设置存储库管理器(Nexus、Artifactory、Archiva)并将此类工件部署到此存储库中。

您收到的消息意味着您正在尝试使用 Maven 中心中不可用的依赖项。解决方案是如上所述进行 mvn install 但在删除目录${HOME}/.m2/repository/spark之前。

于 2012-11-29T08:49:53.157 回答