0

我使用 maven-dependency-plugin 插件来解包依赖项。

运行时,我可以在目标/依赖项下看到解压的 jars(编译阶段需要的那些)

mvn 依赖项:解包依赖项

但是如果我跑

mvn 干净安装

我得到编译错误。

我怎么能让 maven 知道这些解压后的 jar 在编译和安装时要使用?

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

1 回答 1

0

如果你只是声明一个普通的代码依赖,就声明一个依赖。根本不要使用任何插件。说啊,

<dependency>
   <groupId>...</groupId>
   ...
</dependency>

Maven 会将该 jar 添加到您的类路径中。您无需打开包装。

如果有人真的发布了一个包含多个二进制 jar 文件的 Maven 工件,那么 Maven 没有即时解决方案。您将需要一个单独的 Maven 模块,该模块使用依赖插件解包它们,然后使用构建助手插件的“附加”选项将每个模块转换为带有分类器的工件,然后声明对它们的依赖关系。在它们自己的坐标下将这些单独的 jar 重新发布到本地存储库管理器可能会更容易。

如果您需要从某处的资源中提取其他内容,例如数据文件或其他源代码,请将依赖插件与构建帮助程序 maven 插件结合使用。该插件的目标是添加您使用其他插件创建的其他源或资源目录。

如果出于某种原因需要将依赖项组合到自己的 jar 文件中,请参阅 Maven Shade 插件。我怀疑 android 插件生态系统有更好的解决方案来让您的依赖项与您的代码一起旅行,但如果没有,阴影就在那里。

于 2013-10-14T12:32:59.040 回答