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.
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.
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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With