首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Maven编译:包不存在

Maven编译:包不存在
EN

Stack Overflow用户
提问于 2013-06-22 20:32:18
回答 4查看 133.9K关注 0票数 42

我有一个(看似)简单的maven问题,我解决不了。在我的POM中,我指定了一个对openrdf-sesame的依赖关系,如下所示:

代码语言:javascript
复制
<dependency>
     <groupId>org.openrdf.sesame</groupId>
     <artifactId>sesame-runtime</artifactId>
     <version>2.7.2</version>
</dependency>

在eclipse中运行该项目效果很好,我甚至可以导出一个可运行的jar文件。不幸的是,我无法通过cmd-line maven让它正常工作。为了构建jar,我在我的pom中添加了以下内容:

代码语言:javascript
复制
<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>2.3.2</version>
            <configuration>
                <source>1.6</source>
                <target>1.6</target>
            </configuration>
        </plugin>
        <plugin>
            <artifactId>maven-assembly-plugin</artifactId>
            <configuration>
                <descriptorRefs>
                    <descriptorRef>jar-with-dependencies</descriptorRef>
                </descriptorRefs>
                <archive>
                    <manifest>
                        <mainClass>foo.bar.Cli</mainClass>
                    </manifest>
                </archive>
            </configuration>
        </plugin>
    </plugins>
</build>

编译失败,出现以下错误:

代码语言:javascript
复制
.../PLDReducer.java:[25,29] package org.openrdf.rio.rdfxml does not exist
.../PLDReducer.java:[27,33] package org.openrdf.sail.nativerdf does not exist
.../LowPLDReducer.java:[25,29] package org.openrdf.rio.rdfxml does not exist
.../Cli.java:[23,33] package org.openrdf.sail.nativerdf does not exist
.../SchemaBuilder.java:[30,33] package org.openrdf.sail.nativerdf does not exist
.../RepoQuerier.java:[23,33] package org.openrdf.sail.nativerdf does not exist
.../PLDReducer.java:[78,44] cannot find symbol

奇怪的是,当我将编译插件添加到pom并更新项目设置时,eclipse似乎不能再编译了。我已经检查了我的存储库,所有的芝麻文件都在那里。

mvn --version给出以下输出:

代码语言:javascript
复制
Apache Maven 2.2.1 (rdebian-8)
Java version: 1.6.0_27
Java home: /usr/lib/jvm/java-6-openjdk-amd64/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux" version: "3.8.0-25-generic" arch: "amd64" Family: "unix"

我看到它似乎指向一个jre,但我的谷歌搜索表明,如果找不到编译器本身,我会看到另一个错误。我有pasted the complete POM here,如果它有任何帮助的话。

我是不是遗漏了什么?我在我的POM中找不到任何错误。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2013-06-22 22:12:41

您必须将以下依赖项添加到构建中:

代码语言:javascript
复制
<dependency>
    <groupId>org.openrdf.sesame</groupId>
    <artifactId>sesame-rio-api</artifactId>
    <version>2.7.2</version>
</dependency>

此外,我建议深入研究一下documentation about how to use the lib.

票数 18
EN

Stack Overflow用户

发布于 2016-04-20 22:18:33

您的依赖项中不包含<scope>标记。如果您添加了它,您的依赖项将变成如下所示:

代码语言:javascript
复制
<dependency>
     <groupId>org.openrdf.sesame</groupId>
     <artifactId>sesame-runtime</artifactId>
     <version>2.7.2</version>
     <scope> ... </scope>
</dependency>

"scope“标签告诉maven在构建的哪个阶段需要你的依赖。要放入其中的值的示例有"test“、"provided”或“put”(省略pom中的引号)。我不知道你的依赖,所以我不能告诉你选择什么值。请参考Maven文档和您的依赖项的文档。

票数 4
EN

Stack Overflow用户

发布于 2014-01-03 00:13:10

不确定是否存在文件损坏或什么,但在确认正确的pom配置后,我能够通过从本地m2存储库中删除jar来解决此问题,强制Maven在运行测试时再次下载它。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17250741

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档