`

nexus部署第三方构件

 
阅读更多

转自:http://book.huihoo.com/maven-the-definitive-guide/ch16s07s03.html

你的Maven项目可以依赖于一个构件,这个构件不能从中央Maven仓库或任何其它公开Maven仓库找到。有很多原因可能导致这种情形发生:这个构件可能是私有数据库的JDBC驱动如Oracle,或者你依赖于另一个JAR,它既不开源也无法免费获得。在这样的情况下,你就需要手动拿来这些构件然后发布到你自己的仓库中。Nexus提供宿主的"third-party"仓库,就是为了这个目的。

为了阐明发布一个构件至第三方仓库的过程,我们使用一个真实的构件:Oracle JDBC驱动。Oracle发布一个广泛使用的商业数据库产品,该产品带有一个中央Maven仓库没有的JDBC驱动。虽然中央Maven仓库在http://repo1.maven.org/maven2/com/oracle/ojdbc14/10.2.0.3.0/维护了一些Oracle JDBC驱动的POM信息,但这些只是指向Oracle站点的POM。如果你将下列的依赖添加到你的项目。

Example 16.6. Oracle JDBC JAR 依赖

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

 

用这个依赖运行一个Maven构建,将会产生如下的输出:

$ mvn install
...
[INFO] ------------------------------------------------------------------------
[ERROR] BUILD ERROR
[INFO] ------------------------------------------------------------------------
[INFO] Failed to resolve artifact.

Missing:
----------
1) com.oracle:ojdbc14:jar:10.2.0.3.0

  Try downloading the file manually from: 
      http://www.oracle.com/technology/software/tech/java/sqlj_jdbc/index.html

  Then, install it using the command: 
      mvn install:install-file -DgroupId=com.oracle -DartifactId=ojdbc14 \
               -Dversion=10.2.0.3.0 -Dpackaging=jar -Dfile=/path/to/file

  Alternatively, if you host your own repository you can deploy the file there: \
      mvn deploy:deploy-file -DgroupId=com.oracle -DartifactId=ojdbc14 \
                 -Dversion=10.2.0.3.0 -Dpackaging=jar -Dfile=/path/to/file \
                 -Durl=[url] -DrepositoryId=[id]

  Path to dependency: 
  	1) sample:sample:jar:1.0-SNAPSHOT
  	2) com.oracle:ojdbc14:jar:10.2.0.3.0

----------
1 required artifact is missing.

Maven构建失败了因为它不能在Maven仓库中找到Oracle JDBC驱动。要补救这种情况,你将需要发布Oracle JDBC构件至你的Nexus third-party仓库。为此,从http://www.oracle.com/technology/software/tech/java/sqlj_jdbc/index.html下载Oracle JDBC驱动,然后保存至文件ojdbc.jar。使用以下命令发布该文件至Nexus:

$ mvn deploy:deploy-file -DgroupId=com.oracle -DartifactId=ojdbc14 \
> -Dversion=10.2.0.3.0 -Dpackaging=jar -Dfile=ojdbc.jar \
> -Durl=http://localhost:8081/nexus/content/repositories/thirdparty \
> -DrepositoryId=thirdparty
...
[INFO] [deploy:deploy-file]
Uploading: http://localhost:8081/nexus/content/repositories/thirdparty/\
                  com/oracle/ojdbc14/10.2.0.3.0/ojdbc14-10.2.0.3.0.jar
330K uploaded
[INFO] Retrieving previous metadata from thirdparty
[INFO] Uploading repository metadata for: 'artifact com.oracle:ojdbc14'
[INFO] Retrieving previous metadata from thirdparty
[INFO] Uploading project information for ojdbc14 10.2.0.3.0

在你运行mvn deploy:deploy-file之后,该构件会被发布至Nexus的third-party仓库。

分享到:
评论

相关推荐

    maven结合nexus部署文档

    2. **部署第三方库** 如果有第三方库不在 Maven 中央仓库,可以将其手动上传到 Nexus。首先,需要在 Nexus 界面中创建一个 hosted 仓库,然后通过 Maven 的 `deploy:deploy-file` 目标将 JAR 包上传。 **六、总结*...

    官网下载的professional版:nexus-professional-2.15.1-02-bundle

    官网下载的professional版:nexus-professional-2.15.1-02-bundle.zip 专业版 1.Nexus 简介 Nexus是Maven仓库管理器,也可以叫Maven...私服是架设在局域网的一种特殊的远程仓库,目的是代理远程仓库及部署第三方构件。

    nexus构建maven仓库总结(完善版3),添加了对第三方插件的处理和应用

    【标题】:“Nexus构建Maven仓库总结(完善版3)——第三方插件处理与应用” 在软件开发中,管理依赖关系是至关重要的,而Maven作为Java领域广泛使用的构建工具,通过其中央仓库帮助开发者方便地获取所需依赖。然而...

    nexus 2.x 安装配置指南

    #### 部署第三方类库 1. **仓库列表**:在Nexus管理页面中,找到第三方类库仓库。 ![仓库列表](#图7-1仓库列表) 2. **第三方类库**:进入具体的第三方类库仓库页面。 ![第三方类库](#图7-2第三方类库) 3. **...

    nexus私服的操作

    例如,Central仓库代理Maven中央仓库,3rd party用于部署第三方发布版本构件,Snapshots仓库用于存储内部快照版本,Releases仓库则用于部署发布版本构件。 5. **索引下载**:新建Nexus私有仓库时,确保Central仓库...

    nexus-2.6.0-05

    1. **Maven仓库管理**:Nexus作为Maven的仓库代理,可以代理公共的Maven中央仓库和其他第三方库,同时也可以作为内部私有仓库,存储企业自己的构件(JARs、WARs等)。这使得开发者无需直接连接到互联网即可获取所需...

    nexus-3.38.0-01-win64.zip

    存储库则用于发布自定义构件,如内部项目或第三方库。 1. **Nexus的安装与配置** - 解压“nexus-3.38.0-01-win64.zip”,通常会得到一个包含“sonatype-work”和“nexus-3.38.0-01”目录的结构。 - “sonatype-...

    gradle与nexus完美结合

    这里指定了一个名为“thirdparty”的仓库,通常用于存放第三方依赖。 ##### 3. 构件发布配置 ```groovy configurations { resultArchives } artifacts { resultArchives file: file('libs/dx.jar') } ...

    nexus-2.9.0.war&nexus;-2.14.2-01(配置了阿里云仓库).rar

    使用Nexus,企业能够有效地管理私有和第三方的软件依赖,保证软件质量,降低维护成本。特别是对于那些使用Maven、Gradle等构建工具的Java项目,Nexus是不可或缺的组件。在配置了阿里云仓库的版本中,国内开发者可以...

    nexus-webapp-1.5.0-bundle

    - **搜索和下载依赖**:通过 Nexus 的图形用户界面或 API,开发人员可以搜索和下载 Maven 构件,包括公开仓库中的第三方库。 - **创建仓库组**:Nexus 支持将多个仓库组合成一个仓库组,简化了依赖管理,使得开发者...

    nexus+maven构建私服

    ### 构建私有Maven仓库使用Nexus的详尽指南 ...以上步骤详细介绍了如何使用Nexus和Maven构建私有仓库的过程,以及如何添加第三方构件和优化远程仓库配置。这些操作可以帮助团队更好地管理依赖关系,提高开发效率。

    nexus-详细配置文档

    - **3rdparty**:用于存放无法从公共仓库获取的第三方发布的构件。 - **Apache Snapshots**:代理Apache Maven仓库中的快照版本构件。 - **Central**:代理maven中央仓库中发布的构件。 - **Central M1 shadow**...

    使用Nexus搭建Maven私服

    2&gt; 可自行进行构件的管理和维护,包括第三方构件以及项目模块中所依赖的自助开发的公共构件。 具体流程如下图所示: 在上图中,搭建私服后,所有的依赖从私服下载,私服会自动判定,若私服库里没有所需的资源,则...

    nexus-3.6-win64

    5. **质量检查**:Nexus还可以集成第三方服务,如OWASP Dependency Check,对上传的构件进行安全扫描,帮助发现潜在的漏洞和依赖问题。 6. **RESTful API**:Nexus提供了RESTful API,允许通过编程方式与仓库进行...

    Nexus搭建Maven私服 +maven安装步骤

    在项目开发过程中,我们经常需要从 Maven 中央仓库和第三方 Maven 仓库下载构件,这个过程不仅加大了仓库的负载,也浪费了外网带宽。如果网速慢的话,还会影响项目的进度。很多情况下,项目的开发都是在内网进行的,...

    nexus-3.37.0-01-unix.tar.gz

    1. **Maven仓库代理**:它可以作为本地代理,缓存远程Maven中央仓库和其他第三方仓库的JAR文件,提高开发者构建项目的速度。 2. **私人仓库托管**:团队可以将自定义的库、内部构件或私有依赖托管在Nexus上,确保...

    Nexus2ForWindows

    - 创建不同的仓库类型,如hosted(托管仓库)用于存储自定义的构件,proxy(代理仓库)用于代理远程Maven中央仓库或其他第三方仓库。 - 管理用户权限,控制不同团队对仓库的访问。 - 配置自动同步,定期更新代理仓库...

    maven nexus-2.11.3-01-bundle.zip

    Nexus是Sonatype公司推出的一款开源仓库管理器,它可以作为一个中央仓库,存储并管理你的Maven项目依赖,包括第三方库、自定义构件以及Snapshot版本。通过设置Nexus,你可以避免网络延迟问题,提高构建速度,同时也...

    nexus-3.37.3-02-unix.tar.gz

    Nexus,由Sonatype公司开发,是一款强大的Maven仓库管理器,它为Java开发者提供了集中管理依赖、构件发布以及第三方库的功能。在Unix操作系统环境下,Nexus的部署和使用对于优化开发流程至关重要。本文将详细介绍...

Global site tag (gtag.js) - Google Analytics