我使用maven-dependency-plugin插件解压依赖。
我可以在运行
时看到目标/依赖项下的解包后的jar(编译阶段需要的)mvn依赖:unpack-dependencies
但是,如果我运行
mvn clean install
我收到编译错误。
我怎么能知道在编译和安装时要使用这些解压缩的罐子?
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>2.7</version>
<executions>
<execution>
<id>unpack-dependencies</id>
<phase>package</phase>
<goals>
<goal>unpack-dependencies</goal>
</goals>
<configuration>
<includeGroupIds>com.group</includeGroupIds>
<includeArtifactIds>zippedArtifact</includeArtifactIds>
<includes>x.jar,y.jar</includes>
<overWriteIfNewer>true</overWriteIfNewer>
</configuration>
</execution>
</executions>
</plugin>
答案 0 :(得分:0)
如果您只是声明一个普通的代码依赖项,只需声明一个依赖项。根本不要使用任何插件。只是说,
<dependency>
<groupId>...</groupId>
...
</dependency>
Maven会将该jar添加到您的类路径中。你不需要打开它。
如果有人真的发布了包含多个二进制文件jar文件的Maven工件,Maven就没有即时解决方案。您将需要一个单独的Maven模块,使用依赖插件解包它们,然后使用构建帮助程序插件的'attach'选项将每个模块转换为带有分类器的工件,然后声明它们的依赖关系。在他们自己的坐标下将这些单独的jar重新发布到本地存储库管理器可能更容易。
如果您需要从某个地方提取其他内容,例如数据文件或其他源代码,请将依赖项插件与the build helper maven plugin结合使用。此插件的目标是添加您使用其他插件创建的其他源或资源目录。
如果由于某种原因需要将依赖项合并到自己的jar文件中,请参阅Maven Shade插件。我怀疑android插件生态系统有一个更好的解决方案,让你的依赖项随你的代码一起旅行,但如果没有,那就是阴影。