Olivier J.
Olivier J.

Reputation: 3165

Maven and dependencies

I have a simply POM like this :

<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">

<modelVersion>4.0.0</modelVersion>
<groupId>com.sim</groupId>
<artifactId>log4j</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>

<parent>
    <groupId>com.sim</groupId>
    <artifactId>sim-java</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <relativePath>../sim-java/pom.xml</relativePath>
</parent>

<name>log4j</name>

<dependencies>
    <dependency>
        <groupId>log4j</groupId>
        <artifactId>log4j</artifactId>
        <version>1.2.17</version>
        <scope>compile</scope>
    </dependency>       
</dependencies>

I run mvn clean package on this project and a JAR is created as expected.

When I navigate into this JAR, I thought that I would see a JAR named log4j-1.2.17.jar inside it but it's not the case.

Using dependency with compile scope does not include JAR into packaging version of project ?

Thank you for clarification

Upvotes: 1

Views: 166

Answers (1)

Arun Manivannan
Arun Manivannan

Reputation: 4313

The jar:jar plugin of maven just compiles your source and bundles it into a jar. Just like building a jar out of ant or bare hands, no dependency jars will be bundled in the jar. Jars cannot have dependent jars bundled inside them and even if they did, they cannot be loaded by the default class loader.

If you are looking to build a ejb-jar, then you might want to consider a EJB plugin

Check this link for various plugins that you can exploit.

Upvotes: 4

Related Questions