我有一个简单的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到项目的打包版本吗?
感谢您的澄清
答案 0 :(得分:4)
maven的jar:jar
插件只是编译你的源代码并将其捆绑到一个jar中。就像用蚂蚁或赤手制作一个罐子一样,罐子里也不会捆绑任何依赖罐子。 Jars不能在它们内部捆绑依赖的jar,即使它们没有,它们也不能被默认的类加载器加载。
如果您要构建ejb-jar,那么您可能需要考虑EJB plugin
检查this链接,了解您可以利用的各种插件。