Maven 拒绝从远程存储库下载 aar 打包的依赖项

我想在我的java程序中使用此Android依赖项:

http://jcenter.bintray.com/com/o3dr/android/dronekit-android/2.9.0/

所以我把所有的插件和存储库都添加到了我的maven pom文件中:

<repositories>
    <repository>
        <id>central</id>
        <name>bintray</name>
        <url>http://jcenter.bintray.com</url>
        <!--<snapshots>-->
            <!--<enabled>false</enabled>-->
        <!--</snapshots>-->
    </repository>
</repositories>

<pluginRepositories>
    <pluginRepository>
        <!--<snapshots>-->
            <!--<enabled>false</enabled>-->
        <!--</snapshots>-->
        <id>central</id>
        <name>bintray-plugins</name>
        <url>http://jcenter.bintray.com</url>
    </pluginRepository>
</pluginRepositories>

<build>
    <plugins>
        <plugin>
            <groupId>com.simpligility.maven.plugins</groupId>
            <artifactId>android-maven-plugin</artifactId>
            <version>4.1.0</version>

            <extensions>true</extensions>
            <configuration>
                <sign>
                    <debug>false</debug>
                </sign>
            </configuration>
        </plugin>
        ...

然后,我将依赖项添加到同一文件中:

    <dependency>
        <groupId>com.o3dr.android</groupId>
        <artifactId>dronekit-android</artifactId>
        <version>2.9.0</version>
        <type>aar</type>
    </dependency>

但是什么都没有发生,maven忽略它,就好像它不存在一样,如果我将其主包导入scala文件并用它来构建它,我得到这个错误:mvn clear install -U

[ERROR] /home/peng/git-drone/dronespike/src/main/scala/Main.scala:1: object o3dr 不是 package com
的成员 [ERROR] import com.o3dr.android._
[ERROR] ^

:我该怎么做才能解决此问题?


答案 1

使用安卓包装,例如.<packaging>apk</packaging>

如果 Maven 无法下载工件,它会在构建生命周期中更快地抱怨。问题是项目已下载,但未使用。 不是标准的Maven神器,所以Maven不知道该怎么处理它。使用它需要具有扩展名的第三方插件,因此使用 .阅读其文档,它有一些正常工作的要求。具体来说,你没有使用这里提到的Android打包:aarandroid-maven-plugin

使用受支持的打包:apk,aar或apklib

事实上,查看插件源代码,它会在将任何内容添加到classpath之前检查Android打包。aar


答案 2

根据 maven 版本的要求,根据我之前遇到的情况,您可能需要添加发布和快照的配置。在我的情况下,一旦我指定了这些参数,我就能够获得lib:

<repositories>
    <repository>
        <id>central</id>
        <name>bintray-plugins</name>
        <url>http://jcenter.bintray.com</url>
        <releases>
            <enabled>true</enabled>
        </releases>
        <snapshots>
            <enabled>false</enabled>
        </snapshots>
    </repository>
</repositories>

<dependencies>
    <dependency>
        <groupId>com.o3dr.android</groupId>
        <artifactId>dronekit-android</artifactId>
        <version>2.9.0</version>
        <type>aar</type>
    </dependency>
</dependencies>

如果没有它,则不会下载依赖项。


推荐