Note that there are some explanatory texts on larger screens.

plurals
  1. POClassNotFoundException build through maven
    primarykey
    data
    text
    <p>I am using maven to build my project. I wanted to create assembly jar including some of the dependencies, so I wrote my custom assembly descriptor.</p> <p>POM.XML</p> <pre><code>&lt;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/xsd/maven-4.0.0.xsd"&gt; &lt;modelVersion&gt;4.0.0&lt;/modelVersion&gt; &lt;groupId&gt;com.guavus&lt;/groupId&gt; &lt;artifactId&gt;Exporter&lt;/artifactId&gt; &lt;version&gt;atlas2.1&lt;/version&gt; &lt;packaging&gt;jar&lt;/packaging&gt; &lt;name&gt;Exporter&lt;/name&gt; &lt;url&gt;http://maven.apache.org&lt;/url&gt; &lt;properties&gt; &lt;project.build.sourceEncoding&gt;UTF-8&lt;/project.build.sourceEncoding&gt; &lt;aspectj.version&gt;1.6.10&lt;/aspectj.version&gt; &lt;org.springframework.version&gt;3.0.5.RELEASE&lt;/org.springframework.version&gt; &lt;/properties&gt; &lt;build&gt; &lt;plugins&gt; &lt;plugin&gt; &lt;artifactId&gt;maven-assembly-plugin&lt;/artifactId&gt; &lt;configuration&gt; &lt;archive&gt; &lt;manifest&gt; &lt;mainClass&gt;com.guavus.exporter.Exporter&lt;/mainClass&gt; &lt;/manifest&gt; &lt;/archive&gt; &lt;descriptors&gt; &lt;descriptor&gt;/Users/archit.thakur/Documents/Code_dev_cdn_mapreduce/exporter/src/main/configurator.xml&lt;/descriptor&gt; &lt;/descriptors&gt; &lt;!-- &lt;descriptorRefs&gt; &lt;descriptorRef&gt;jar-with-dependencies&lt;/descriptorRef&gt; &lt;/descriptorRefs&gt; --&gt; &lt;finalName&gt;Exporter-${project.version}&lt;/finalName&gt; &lt;appendAssemblyId&gt;false&lt;/appendAssemblyId&gt; &lt;/configuration&gt; &lt;executions&gt; &lt;execution&gt; &lt;id&gt;make-assembly&lt;/id&gt; &lt;phase&gt;package&lt;/phase&gt; &lt;goals&gt; &lt;goal&gt;single&lt;/goal&gt; &lt;/goals&gt; &lt;/execution&gt; &lt;/executions&gt; &lt;/plugin&gt; &lt;plugin&gt; &lt;artifactId&gt;maven-jar-plugin&lt;/artifactId&gt; &lt;version&gt;2.3.1&lt;/version&gt; &lt;executions&gt; &lt;execution&gt; &lt;id&gt;default-jar&lt;/id&gt; &lt;phase&gt;none&lt;/phase&gt; &lt;/execution&gt; &lt;/executions&gt; &lt;/plugin&gt; &lt;/plugins&gt; &lt;/build&gt; &lt;dependencies&gt; &lt;!-- local snapshots --&gt; &lt;dependency&gt; &lt;groupId&gt;com.guavus&lt;/groupId&gt; &lt;artifactId&gt;CubeCreator&lt;/artifactId&gt; &lt;version&gt;atlas2.1&lt;/version&gt; &lt;/dependency&gt; &lt;dependency&gt; &lt;groupId&gt;com.guavus&lt;/groupId&gt; &lt;artifactId&gt;ConcurrentFlows&lt;/artifactId&gt; &lt;version&gt;atlas2.1&lt;/version&gt; &lt;/dependency&gt; &lt;dependency&gt; &lt;groupId&gt;org.aspectj&lt;/groupId&gt; &lt;artifactId&gt;aspectjrt&lt;/artifactId&gt; &lt;version&gt;1.6.11&lt;/version&gt; &lt;/dependency&gt; &lt;dependency&gt; &lt;groupId&gt;ps&lt;/groupId&gt; &lt;artifactId&gt;thriftGenerated&lt;/artifactId&gt; &lt;version&gt;atlas2.1&lt;/version&gt; &lt;/dependency&gt; &lt;!-- local snapshots --&gt;&lt;!-- local 3rd Party --&gt; &lt;dependency&gt; &lt;groupId&gt;apache&lt;/groupId&gt; &lt;artifactId&gt;libthrift&lt;/artifactId&gt; &lt;version&gt;0.5.0&lt;/version&gt; &lt;/dependency&gt; &lt;!-- local 3rd Party --&gt;&lt;!-- remote 3rd Party --&gt; &lt;dependency&gt; &lt;groupId&gt;org.apache.hadoop&lt;/groupId&gt; &lt;artifactId&gt;hadoop-core&lt;/artifactId&gt; &lt;version&gt;0.20.203.0&lt;/version&gt; &lt;/dependency&gt; &lt;dependency&gt; &lt;groupId&gt;com.google.code.gson&lt;/groupId&gt; &lt;artifactId&gt;gson&lt;/artifactId&gt; &lt;version&gt;1.7.1&lt;/version&gt; &lt;/dependency&gt; &lt;!-- remote 3rd Party --&gt;&lt;!-- test libs --&gt;&lt;!-- test libs --&gt; &lt;dependency&gt; &lt;groupId&gt;org.aspectj&lt;/groupId&gt; &lt;artifactId&gt;aspectjrt&lt;/artifactId&gt; &lt;version&gt;1.6.11&lt;/version&gt; &lt;/dependency&gt; &lt;dependency&gt; &lt;groupId&gt;log4j&lt;/groupId&gt; &lt;artifactId&gt;log4j&lt;/artifactId&gt; &lt;version&gt;1.2.16&lt;/version&gt; &lt;/dependency&gt; &lt;dependency&gt; &lt;groupId&gt;org.slf4j&lt;/groupId&gt; &lt;artifactId&gt;slf4j-api&lt;/artifactId&gt; &lt;version&gt;1.7.2&lt;/version&gt; &lt;/dependency&gt; &lt;dependency&gt; &lt;groupId&gt;ch.qos.logback&lt;/groupId&gt; &lt;artifactId&gt;logback-access&lt;/artifactId&gt; &lt;version&gt;1.0.1&lt;/version&gt; &lt;/dependency&gt; &lt;dependency&gt; &lt;groupId&gt;ch.qos.logback&lt;/groupId&gt; &lt;artifactId&gt;logback-classic&lt;/artifactId&gt; &lt;version&gt;1.0.1&lt;/version&gt; &lt;/dependency&gt; &lt;dependency&gt; &lt;groupId&gt;ch.qos.logback&lt;/groupId&gt; &lt;artifactId&gt;logback-core&lt;/artifactId&gt; &lt;version&gt;1.0.1&lt;/version&gt; &lt;/dependency&gt; &lt;/dependencies&gt; &lt;/project&gt; </code></pre> <p>DESCRIPTOR:</p> <pre><code>&lt;assembly xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2 http://maven.apache.org/xsd/assembly-1.1.2.xsd"&gt; &lt;id&gt;dep&lt;/id&gt; &lt;formats&gt; &lt;format&gt;jar&lt;/format&gt; &lt;/formats&gt; &lt;dependencySets&gt; &lt;dependencySet&gt; &lt;scope&gt;runtime&lt;/scope&gt; &lt;unpack&gt;true&lt;/unpack&gt; &lt;useProjectArtifact&gt;true&lt;/useProjectArtifact&gt; &lt;includes&gt; &lt;include&gt;log4j:log4j&lt;/include&gt; &lt;include&gt;org.slf4j:slf4j-api&lt;/include&gt; &lt;include&gt;ch.qos.logback:logback-access&lt;/include&gt; &lt;include&gt;ch.qos.logback:logback-classic&lt;/include&gt; &lt;include&gt;ch.qos.logback:logback-core&lt;/include&gt; &lt;include&gt;com.guavus:Exporter&lt;/include&gt; &lt;/includes&gt; &lt;/dependencySet&gt; &lt;/dependencySets&gt; &lt;/assembly&gt; </code></pre> <p>The problem is, It is creating jar having classes at directory structure like "Exporter-atlas2.1//". For example, "Exporter-atlas2.1/ch/qos/logback/classic/util/EnvUtil.class". Thats why, it throws, ClassNotFoundException at the runtime. I was expecting classes to be present at "/",For eg. "ch/qos/logback/classic/util/EnvUtil.class". </p>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload