build - Problem creating jar through maven -
hi,
i trying creating executable jar using maven. jar created , when try execute java -jar myjar following error
caused by: java.lang.classnotfoundexception: org.apache.hadoop.conf.configuration @ java.net.urlclassloader$1.run(urlclassloader.java:202)
i extracted jar , see hadoop classes not present. , in logs see hadoop jars not copied .where problem
my pom.xml follows :
<build>
<plugins>
<plugin>
<groupid>org.apache.maven.plugins</groupid>
<artifactid>maven-compiler-plugin</artifactid>
<version>2.3.1</version>
<configuration>
<source>1.6</source>
<target>1.6</target>
</configuration>
</plugin>
<plugin>
<groupid>org.apache.maven.plugins</groupid>
<artifactid>maven-assembly-plugin</artifactid>
<version>2.2-beta-4</version>
<configuration>
<descriptorrefs>
<descriptorref>jar-with-dependencies</descriptorref>
</descriptorrefs>
<archive>
<manifest>
<mainclass>com.myclass</mainclass>
</manifest>
</archive>
</configuration>
<executions> <execution>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
<!-- compile time dependencies --> <dependency> <groupid>bixo</groupid> <artifactid>bixo-core</artifactid> <version>1.0-snapshot</version> </dependency> <dependency> <groupid>cascading</groupid> <artifactid>cascading-core</artifactid> </dependency> <dependency> <groupid>cascading</groupid> <artifactid>cascading-11-jdbc</artifactid> <version>0.0.4</version> </dependency> <dependency> <groupid>hsqldb</groupid> <artifactid>hsqldb</artifactid> <version>1.8.0.7</version> </dependency> <dependency> <groupid>org.apache.httpcomponents</groupid> <artifactid>httpcore</artifactid> <version>4.0.1</version> </dependency> <dependency> <groupid>org.apache.lucene</groupid> <artifactid>lucene-core</artifactid> </dependency> <dependency> <groupid>org.apache.tika</groupid> <artifactid>tika-parsers</artifactid> <version>0.8</version> </dependency> <dependency> <groupid>org.archive</groupid> <artifactid>heritrix</artifactid> <version>1.14.3</version> </dependency> <dependency> <groupid>log4j</groupid> <artifactid>log4j</artifactid> <version>1.2.14</version> </dependency> <dependency> <groupid>commons-lang</groupid> <artifactid>commons-lang</artifactid> <version>2.4</version> </dependency> <dependency> <groupid>commons-io</groupid> <artifactid>commons-io</artifactid> <version>1.4</version> </dependency> <dependency> <groupid>org.kohsuke</groupid> <artifactid>args4j</artifactid> <version>2.0.10</version> </dependency> <dependency> <groupid>org.apache.hadoop</groupid> <artifactid>hadoop-core</artifactid> <version>0.21.0-snapshot</version> <scope>provided</scope> <exclusions> <exclusion> <artifactid>jetty</artifactid> <groupid>org.mortbay.jetty</groupid> </exclusion> <exclusion> <artifactid>jetty-util</artifactid> <groupid>org.mortbay.jetty</groupid> </exclusion> </exclusions> </dependency> <dependency> <groupid>org.apache.hadoop</groupid> <artifactid>hadoop-mapred</artifactid> <version>0.21.0-snapshot</version> <scope>provided</scope> </dependency> <dependency> <groupid>org.apache.hadoop</groupid> <artifactid>hadoop-common</artifactid> <version>0.21.0-snapshot</version> <scope>provided</scope> </dependency> <dependency> <groupid>javax.servlet</groupid> <artifactid>servlet-api</artifactid> <version>2.5</version> <scope>provided</scope> </dependency> <!-- eclipse project generation dependencies --> <dependency> <groupid>ant-eclipse</groupid> <artifactid>ant-eclipse-jvm1.2</artifactid> <version>1.0</version> <scope>eclipse</scope> </dependency> </dependencies> <dependencymanagement> <dependencies> <dependency> <groupid>org.apache.lucene</groupid> <artifactid>lucene-core</artifactid> <version>2.4.1</version> </dependency> <dependency> <groupid>cascading</groupid> <artifactid>cascading-core</artifactid> <version>1.1.1</version> </dependency> <dependency> <groupid>cascading</groupid> <artifactid>cascading-test</artifactid> <version>1.1.1</version> </dependency> </dependencies> </dependencymanagement> `
you've specified hadoop jars dependencies scope of <scope>provided</scope>
.
implies on classpath @ runtime, if want them included in jar, remove scope tags , accept default scope of compile.
Comments
Post a Comment