【发布时间】:2013-06-19 11:59:47
【问题描述】:
我有一个(看似)简单的 maven 问题我无法解决。在我的 POM 中,我指定了对 openrdf-sesame 的依赖,如下所示:
<dependency>
<groupId>org.openrdf.sesame</groupId>
<artifactId>sesame-runtime</artifactId>
<version>2.7.2</version>
</dependency>
从 Eclipse 运行项目效果很好,我什至可以导出一个可运行的 jar 文件。 不幸的是,我无法通过 cmd-line maven 让它正常工作。 为了构建一个 jar,我在我的 pom 中添加了以下内容:
<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>
编译失败并出现以下错误:
.../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 给出这个输出:
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 中找不到任何错误。
【问题讨论】:
-
你能显示'mvn clean package'的完整输出吗?
-
看起来您正在使用不存在的包名称(可能在您的导入部分中)。你真的需要那些包吗?使用它的类?用 IDE 清理了导入部分(比如 Eclipse?)?你能展示一个像
PLDReducer.java这样的源代码文件吗? -
PLDReducer.java - 我肯定使用 openrdf 包,我很确定它们是正确的。我可以从 eclipse 编译和运行我的项目。
标签: java maven compiler-errors