Yes. The behavior is correct.

Maven does not include the log4j jar because jars cannot contain other jars.

When you use additional jars at runtime, you have to provide them via the
classpath.

And as far as i know you cannot define the classpath of jar inside the jar
like the main class.

So maven cannot set the classpath for you. Moreover Maven cannot know where
the jar is executed, so it cannot guarantee that the referenced jars in the
classpath are present.

2007/6/26, DCVer <[EMAIL PROTECTED]>:


Thanks for reply.

Hmm, I think my jar doesn't contain log4j - it only contains App.class and
pom.xml with pom.properties and manifest.mf. Is it a correctly built jar?

And I wonder why Maven2 won't set *somewhere* classpaths to jars on its
own
if it knows where they are :-/


Jan-Christopher Bals-2 wrote:
>
> You have to provide log4j via the classpath on your own.
> Maven does include log4j in your generated jar automatically.
>
> But Maven can generate the classpath for you
> http://maven.apache.org/plugins/maven-dependency-plugin/usage.html
> ->dependency:build-classpath
>
>
> 2007/6/26, DCVer <[EMAIL PROTECTED]>:
>>
>>
>> Hi,
>>
>> I'm creating a jar using "mvn package". The files, which are included
in
>> this jar are using another jar (e.g. log4j-1.2.14.jar), which are
stored
>> in
>> maven repository. My part of pom.xml file responsible for dependencies
>> looks
>> like:
>>
>> <dependency>
>>   <groupId>log4j</groupId>
>>   <artifactId>log4j</artifactId>
>>   <version>1.2.14</version>
>>   <scope>compile</scope>
>>   <type>jar</type>
>> </dependency>
>>
>> The "mvn package" process finishes correctly, but when i run the jar
>> using:
>>
>> java -cp target\my-app-1.0-SNAPSHOT.jar com.mycompany.app.App
>>
>> i receive the error:
>>
>> Exception in thread "main" java.lang.NoClassDefFoundError:
>> org/apache/log4j/Logger
>>
>> (on line:
>> private static Logger logger = Logger.getLogger("com.mycompany.app.App
");
>>
>> In my opinion the jar, that was created using "mvn package" doesn't
know
>> about dependencies (and about jars stored in repository?). How should I
>> set
>> classpaths and make this jar work correctly? Isn't it a BASIC
>> functionality,
>> that Maven2 should do, when I set <dependency> in pom.xml file?
>>
>> I tried this with other jars (in repository) and other methods of the
>> classes included in jars and the results were exactly the same.
>> --
>> View this message in context:
>>
http://www.nabble.com/adding-the-classpath-to-jar-file-tf3982263s177.html#a11305225
>> Sent from the Maven - Users mailing list archive at Nabble.com.
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: [EMAIL PROTECTED]
>> For additional commands, e-mail: [EMAIL PROTECTED]
>>
>>
>
>

--
View this message in context:
http://www.nabble.com/adding-the-classpath-to-jar-file-tf3982263s177.html#a11305662
Sent from the Maven - Users mailing list archive at Nabble.com.


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


Reply via email to