Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Maven compile: package does not exist

I have a (seemingly) simple maven problem I can not solve. In my POM I have specified a dependency to openrdf-sesame like this:

<dependency>      <groupId>org.openrdf.sesame</groupId>      <artifactId>sesame-runtime</artifactId>      <version>2.7.2</version> </dependency> 

Running the project from eclipse works well, I can even export a runnable jar file. Unfortunately, I cant get it to work properly via cmd-line maven. To build a jar, I have added the following to my 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> 

The compilation fails with the following errors:

.../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 

Strangely, as soon as I add the compile plugin to the pom and update project settings, eclipse cant seem to compile anymore as well. I have checked my repository, and all sesame files are in there.

mvn --version gives this output:

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" 

I see that it seems to point to a jre, but my googling indicated that I would see another error if the compiler itself was not found. I have pasted the complete POM here, if it is of any help.

Is there anything I am missing? I can't find any errors in my POM.

like image 297
feob Avatar asked Jun 22 '13 12:06

feob


2 Answers

You have to add the following dependency to your build:

<dependency>     <groupId>org.openrdf.sesame</groupId>     <artifactId>sesame-rio-api</artifactId>     <version>2.7.2</version> </dependency> 

Furthermore i would suggest to take a deep look into the documentation about how to use the lib.

like image 101
khmarbaise Avatar answered Sep 22 '22 23:09

khmarbaise


You do not include a <scope> tag in your dependency. If you add it, your dependency becomes something like:

<dependency>      <groupId>org.openrdf.sesame</groupId>      <artifactId>sesame-runtime</artifactId>      <version>2.7.2</version>      <scope> ... </scope> </dependency> 

The "scope" tag tells maven at which stage of the build your dependency is needed. Examples for the values to put inside are "test", "provided" or "runtime" (omit the quotes in your pom). I do not know your dependency so I cannot tell you what value to choose. Please consult the Maven documentation and the documentation of your dependency.

like image 21
Martijn Dirkse Avatar answered Sep 25 '22 23:09

Martijn Dirkse