Nice! It looks cleaner than my ant+ivy hack :) Thanks for sharing, -- Gianmarco
On Thu, Nov 10, 2011 at 16:18, Claudio Martella <claudio.marte...@gmail.com>wrote: > Ok, > > quite basically this is my pom.xml: > > <project xmlns="http://maven.apache.org/POM/4.0.0" > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" > xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 > http://maven.apache.org/maven-v4_0_0.xsd"> > <modelVersion>4.0.0</modelVersion> > <groupId>org.acaro.graffiti</groupId> > <artifactId>graffiti</artifactId> > <packaging>jar</packaging> > <version>1.0-SNAPSHOT</version> > <name>graffiti</name> > <url>http://maven.apache.org</url> > <build> > <plugins> > <plugin> > <groupId>org.apache.maven.plugins</groupId> > > <artifactId>maven-assembly-plugin</artifactId> > <version>2.2</version> > <configuration> > > <outputDirectory>target</outputDirectory> > <descriptorRefs> > > <descriptorRef>jar-with-dependencies</descriptorRef> > </descriptorRefs> > </configuration> > <executions> > <execution> > <id>make-assembly</id> > <phase>compile</phase> > <goals> > <goal>single</goal> > </goals> > </execution> > </executions> > </plugin> > <plugin> > <groupId>org.apache.maven.plugins</groupId> > > <artifactId>maven-eclipse-plugin</artifactId> > <configuration> > > <downloadSources>true</downloadSources> > > <downloadJavadocs>true</downloadJavadocs> > </configuration> > </plugin> > <plugin> > <groupId>org.apache.maven.plugins</groupId> > <artifactId>maven-shade-plugin</artifactId> > <version>1.5</version> > <executions> > <execution> > <phase>package</phase> > <goals> > <goal>shade</goal> > </goals> > <configuration> > </configuration> > </execution> > </executions> > </plugin> > </plugins> > </build> > <dependencies> > <dependency> > <groupId>junit</groupId> > <artifactId>junit</artifactId> > <version>4.8.2</version> > <scope>test</scope> > </dependency> > <dependency> > <groupId>ch.qos.logback</groupId> > <artifactId>logback-classic</artifactId> > <version>0.9.27</version> > </dependency> > <dependency> > <groupId>com.google.guava</groupId> > <artifactId>guava</artifactId> > <version>r09</version> > </dependency> > <dependency> > <groupId>org.antlr</groupId> > <artifactId>antlr</artifactId> > <version>3.3</version> > </dependency> > <dependency> > <groupId>org.apache.giraph</groupId> > <artifactId>giraph</artifactId> > <version>0.70</version> > </dependency> > <dependency> > <groupId>org.apache.hadoop</groupId> > <artifactId>hadoop-core</artifactId> > <version>0.20.204.0</version> > <scope>provided</scope> > </dependency> > </dependencies> > </project> > > > You set your project dependecies as usual, set hadoop-core (you don't > really need it in the job jar) as <provided> and then use the > maven-shade (http://maven.apache.org/plugins/maven-shade-plugin/). At > package goal it will upack your dependencies and re-pack them along > with your project classes in an uberjar. > > maven-shade allows you to set excludes in case of conflicts. > > Easy, automatic and clean. > > > Hope this helps, > Claudio > > On Wed, Nov 9, 2011 at 12:19 PM, Avery Ching <ach...@apache.org> wrote: > > Would be great if you can document what you did. =) > > > > Thanks, > > > > Avery > > > > On 11/8/11 3:13 PM, Claudio Martella wrote: > >> > >> Sorry guys, may bad. > >> > >> Was calling job.waitForCompletion() directly. I've been coding > >> standard mapreduce whole weekend... > >> > >> Anyway I got a solution for clean packaging of your own application > >> over giraph, and that is exactly using maven-shade-plugin. it will > >> prepare the uberjar for you. > >> > >> On Tue, Nov 8, 2011 at 9:33 PM, Claudio Martella > >> <claudio.marte...@gmail.com> wrote: > >>> > >>> Hello list, > >>> > >>> I'm actually having troubles as well to get my application running. > >>> > >>> I've give a shot to maven-shade plugin which unpacks my dependencies > >>> and packs them all together with my classes in a new jar. > >>> > >>> I attach the hierarchy of the jar so that somebody can maybe spot > >>> what's missing, because i can't get it working. I get an identity > >>> map-reduce job with jobconf complaining about no job jar being set. > >>> > >>> Any idea? > >>> > >>> On Sat, Nov 5, 2011 at 5:09 PM, Avery Ching<ach...@apache.org> wrote: > >>>> > >>>> Hi Gianmarco, > >>>> > >>>> You're right, most of us (to my knowledge) have been using Giraph with > >>>> an > >>>> uberjar as you've put it. However, Jakob has been doing some work to > >>>> make > >>>> this easier. See the below issue: > >>>> > >>>> https://issues.apache.org/jira/browse/GIRAPH-64 > >>>> > >>>> If you can suggest a better approach, please add to the issue or > create > >>>> a > >>>> new one if appropriate. > >>>> > >>>> Thanks, > >>>> > >>>> Avery > >>>> > >>>> On 11/5/11 4:11 AM, Gianmarco De Francisci Morales wrote: > >>>>> > >>>>> Hi community, > >>>>> > >>>>> I was wondering what is the current best practice to package an > >>>>> application in a jar for deployment. > >>>>> I tried the 'hadoop way' by putting giraph-*.jar in the /lib > directory > >>>>> of > >>>>> my jar, and using the -libjars option but none of them worked. It > looks > >>>>> like > >>>>> the backend classloader is doing some mess and it doesn't find my own > >>>>> classes in the jar. > >>>>> > >>>>> I resorted to uncompressing the giraph-*.jar and repackaging my > classes > >>>>> with it, all at the same level (an uber-fat jar), but even though it > >>>>> works > >>>>> it doesn't sound like the right approach. > >>>>> > >>>>> Any suggestions? > >>>>> > >>>>> Thanks, > >>>>> -- > >>>>> Gianmarco > >>>>> > >>>>> > >>>>> > >>>> > >>> > >>> > >>> -- > >>> Claudio Martella > >>> claudio.marte...@gmail.com > >>> > >> > >> > > > > > > > > -- > Claudio Martella > claudio.marte...@gmail.com >