【发布时间】:2014-03-22 07:51:36
【问题描述】:
过去一个小时左右,我一直在尝试让我的 Maven 项目包含来自其依赖项的源文件,但由于某种原因,它不是。我已按照以下链接提供的步骤进行操作,但是当我编译并运行插件时,我得到了 ClassNotFoundException:
https://github.com/mkremins/fanciful
我已确保将上面链接中的依赖项和存储库包含到我的 pom.xml 文件中,但是当我编译时,它们不会被添加到我的 .jar 文件中。
我对使用 Maven 还很陌生,到目前为止我很喜欢它,尽管解决这样的问题可能会很痛苦。
我正在通过执行以下操作来构建项目:
右键项目 -> 运行方式 -> Maven 构建 -> 目标:全新安装
- 编辑-
经过一番搜索,我发现这并不像我想象的那么容易。我将以下内容添加到我的 pom.xml 构建部分:
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>2.1</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<createDependencyReducedPom>false</createDependencyReducedPom>
<minimizeJar>true</minimizeJar>
<artifactSet>
<includes>
<include>mkremins:fanciful</include>
<include>org.json:json</include>
</includes>
</artifactSet>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
唯一的问题是我还需要手动包含我想使用的主库的依赖项 - mkremins:fanciful;是否有标志或选项可以自动从我需要的一个文件中复制依赖项,而不是包括<include>org.json:json</include>?
【问题讨论】:
-
我建议将此问题的名称更改为“未打包的 Maven 依赖项”。简而言之:编译 -> 从 .java 打包创建 .class -> 创建 .jar(或其他归档格式)
标签: java maven dependencies repository