GVKun编程网logo

如何在本地Maven存储库中搜索软件包(maven本地仓库怎么找)

3

在本文中,我们将给您介绍关于如何在本地Maven存储库中搜索软件包的详细内容,并且为您解答maven本地仓库怎么找的相关问题,此外,我们还将为您提供关于Android库–使用Gradle将多个变体发布

在本文中,我们将给您介绍关于如何在本地Maven存储库中搜索软件包的详细内容,并且为您解答maven本地仓库怎么找的相关问题,此外,我们还将为您提供关于Android库 – 使用Gradle将多个变体发布到本地Maven存储库、java – 列出maven存储库中的所有工件、Java在Maven存储库中查找Oracle JDBC驱动程序、Maven存储库的继承和重写的知识。

本文目录一览:

如何在本地Maven存储库中搜索软件包(maven本地仓库怎么找)

如何在本地Maven存储库中搜索软件包(maven本地仓库怎么找)

我不知道在本地执行任何操作。但是您可以:

  • 转到https://search.maven.org/
  • 使用fc:,然后使用完整的类名

Android库 – 使用Gradle将多个变体发布到本地Maven存储库

Android库 – 使用Gradle将多个变体发布到本地Maven存储库

我正在使用 Android Gradle插件0.13.2,Android Studio 0.8.11,Gradle 2.1和maven插件.

我想用一个命令(任务)将我的Android库的多个变种(风味构建类型)安装到本地Maven存储库.

目前Android Gradle插件0.13.2允许我将publishNonDefault标志设置为发布所有变体,但正如文档所述,它将使用与Maven Repository不兼容的分类器发布变体.

我现在的解决方法是使用defaultPublishConfig“myVariant”并为我的每个变体更改它.

apply plugin: 'com.android.library'
apply plugin: 'maven'

android {
    defaultPublishConfig "myVariant"
    .
    .
    .

}

task installArchives(type: Upload) {
    repositories.mavenInstaller {
        configuration = configurations.getByName(Dependency.DEFAULT_CONfigURATION)
        pom.groupId = "com.company"
        pom.artifactId = "mylibrary"
        pom.version = "1.0.0-myVariant"
    }
}

我想有一个任务可以正确地将所有变种发布到本地Maven存储库.

解决方法

为了解决这个问题,我必须为每个变体创建一个上载任务,并使它们相互依赖,并依赖于启动该过程的主任务.
apply plugin: 'com.android.library'
apply plugin: 'maven'

android {
    .
    .
    .

}

// Master task that will publish all variants
def DefaultTask masterTask = project.tasks.create("installArchives",DefaultTask)

android.libraryVariants.all { variant ->
    variant.outputs.each { output ->

        // Configuration defines which artifacts will be published,create one configuration for each variant output (artifact)
        def Configuration variantConfiguration = project.configurations.create("${variant.name}Archives")
        project.artifacts.add(variantConfiguration.name,output.packageLibrary)

        // Create one Upload type task for each configuration
        def Upload variantTask = project.tasks.create("${variant.name}Install",Upload)
        variantTask.configuration = variantConfiguration
        variantTask.repositories.mavenInstaller {
            pom.groupId = "com.yourcompany"
            pom.artifactId = "yourLibrary"
            pom.version = "1.0.0-${variant.name}" //Give a different version for each variant
            pom.packaging = "aar"
        }

        // Make all tasks depend on each other and on master task
        masterTask.dependsOn variantTask
        masterTask = variantTask
    }
}

任务installArchives将所有变体发布到本地Maven存储库.

./gradlew installArchives

java – 列出maven存储库中的所有工件

java – 列出maven存储库中的所有工件

aether有一个函数来获取给定工件的所有版本,如下所示:
org.sonatype.aether.impl.VersionRangeResolver.resolveVersionRange( 
    RepositorySystemSession session,VersionRangeRequest request )

是否有一个以太函数来列出存储库中的所有工件?

或者如何获得该列表?

ps:我知道大多数maven存储库提供了一个人类可读的索引,你可以解析和爬行.这不是一个安全的解决方案,只是一种解决方法,我不是在寻找这种类型的解决方案.

解决方法

几乎是“否”的正式答案是 this answer“用Aether列出文物?”:

No.

These kind of queries for are a job for the 07001.

从Benjamin Bentmann.

您可能会发现Maven Indexer正是您所需要的.

Java在Maven存储库中查找Oracle JDBC驱动程序

Java在Maven存储库中查找Oracle JDBC驱动程序

我想将oracle jdbc驱动程序作为依赖项(运行时作用域)添加到我的项目中-ojdbc14。在MVNrepository站点中,放入POM的依赖项为:

<dependency>    <groupId>com.oracle</groupId>    <artifactId>ojdbc14</artifactId>    <version>10.2.0.3.0</version></dependency>

当然这是行不通的,因为它不在maven使用的中央存储库中。2个问题:

  1. 如何找到包含此工件的存储库(如果有)?
  2. 我如何添加它以便Maven使用它?

答案1

小编典典

如何找到包含此工件的存储库(如果有)?

不幸的是,由于二进制许可证,Oracle Driver JAR没有公共存储库。这有很多依赖关系,但这不是Maven的错。如果你碰巧找到了一个包含JAR的公共存储库,则可以确定这是非法的。

我如何添加它以便Maven使用它?

由于许可证原因而无法添加的某些JAR 在Maven Central存储库中有一个pom条目。只需检查一下,它包含供应商的首选Maven信息:

<groupId>com.oracle</groupId><artifactId>ojdbc14</artifactId><version>10.2.0.3.0</version>

…以及用于下载文件的URL,在本例中为 http://www.oracle.com/technology/software/tech/java/sqlj_jdbc/index.html。

下载完JAR后,只需将其添加到你的计算机存储库中(请注意,我从POM中提取了groupId,artifactId和版本):

mvn install:install-file -DgroupId=com.oracle -DartifactId=ojdbc14 \     -Dversion=10.2.0.3.0 -Dpackaging=jar -Dfile=ojdbc.jar -DgeneratePom=true

用于生成POM的最后一个参数将使你免于pom.xml警告

Maven存储库的继承和重写

Maven存储库的继承和重写

如何解决Maven存储库的继承和重写?

| 我有一个几年前建立的Maven项目,现在我需要进行一些更新。我项目的依赖项之一是在其POM中列出的Maven存储库不再存在。我现在出现构建失败。 我以为我的POM或Settings.xml中的存储库列表会胜过依赖项的POM中列出的所有存储库;否则Maven将无法连接到已存在的存储库,然后尝试使用我的存储库。相反,它只是因构建失败而炸毁。 此外,我的本地存储库中已经具有必需的依赖项。我本来以为Maven会使用它。 有没有办法覆盖继承的存储库列表,或者在回购问题的情况下告诉Maven继续进行呢?     

解决方法

        如果您依赖的工件是快照版本,那么maven每次构建时都会检查一个新的快照,这就是为什么将您的依赖项锁定到发行版本的好习惯。 您可以通过在settings.xml中定义一个“ 0”来“覆盖”存储库声明。 参见http://maven.apache.org/settings.html#Mirrors 我通常会设置一个本地托管的存储库管理器(最好是nexus),然后定义mirrorOf(*)= local-repo-manager / url。 Nexus允许将多个存储库与预定义的搜索顺序分组。 Nexus存储库可以本地托管,也可以缓存/代理到公共存储库。 我通常在小组的最前面有一个本地托管的第三方存储库,我可以在其中存储未在公共存储库中发布的工件。     

今天的关于如何在本地Maven存储库中搜索软件包maven本地仓库怎么找的分享已经结束,谢谢您的关注,如果想了解更多关于Android库 – 使用Gradle将多个变体发布到本地Maven存储库、java – 列出maven存储库中的所有工件、Java在Maven存储库中查找Oracle JDBC驱动程序、Maven存储库的继承和重写的相关知识,请在本站进行查询。

本文标签: