Maven和依赖

时间:2012-10-30 22:33:49

标签: maven

我有一个简单的POM:

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

我在这个项目上运行mvn clean package,并按预期创建了一个JAR。

当我导航到这个JAR时,我想我会在里面看到一个名为log4j-1.2.17.jar的JAR,但事实并非如此。

在编译范围中使用依赖关系不包括JAR到项目的打包版本吗?

感谢您的澄清

1 个答案:

答案 0 :(得分:4)

maven的jar:jar插件只是编译你的源代码并将其捆绑到一个jar中。就像用蚂蚁或赤手制作一个罐子一样,罐子里也不会捆绑任何依赖罐子。 Jars不能在它们内部捆绑依赖的jar,即使它们没有,它们也不能被默认的类加载器加载。

如果您要构建ejb-jar,那么您可能需要考虑EJB plugin

检查this链接,了解您可以利用的各种插件。