从zip依赖:: Android项目解压缩jar

时间:2013-10-14 12:28:40

标签: android maven maven-dependency-plugin

我使用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>

1 个答案:

答案 0 :(得分:0)

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

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

Maven会将该jar添加到您的类路径中。你不需要打开它。

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

如果您需要从某个地方提取其他内容,例如数据文件或其他源代码,请将依赖项插件与the build helper maven plugin结合使用。此插件的目标是添加您使用其他插件创建的其他源或资源目录。

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