使用Maven的一大难题,就是dependency和repository的管理,而由于官网的不堪忍受性,我们不得不使用local repository或者自建私服,在这种情况下,我们该怎么样处理第三方的依赖包呢?
1. 如果是本地的repository, 可以通过如下的脚本来安装:
mvn install:install-file -Dfile=path-to-your-artifact-jar -DgroupId=your.groupId
-DartifactId=your-artifactId -Dversion=your-version -Dpackaging=jar -DgeneratePom=true
2.如果是自建的私服,并且是第三方jar的话,就要通过webdav插件来上传,Maven2.0.5宣称它已经support natively webdav protocol
to upload artefacts,并且声称通过如下的命令行脚本就可以完成deploy的工作:
(参见http://docs.codehaus.org/display/MAVENUSER/Upload+artifacts)
mvn deploy:deploy-file -DrepositoryId=<your_repo_id>your-repository-id -Durl=dav:your-repository-url <your_repo_url>
-DgroupId=</your_repo_url></your_repo_id>your.groupId<your_repo_id><your_repo_url><group_id> -DartifactId=<artifact_id></artifact_id></group_id></your_repo_url></your_repo_id>your-artifactId<your_repo_id><your_repo_url><group_id><artifact_id> -Dversion=<version>your-version -Dpackaging=<packaging>jar
-Dfile=jar-name<file_path>
可以我们两个人花了半天的时间,才发现这些声明纯属扯淡!存在的问题如下:
1) 当前的Maven版本根本就没有对Webdav提供native的支持,
2) 我们仍然需要手工创建一个pom.xml,把它和jar包放在同一个目录下,
3</file_path></packaging></version></artifact_id></group_id></your_repo_url></your_repo_id>)<your_repo_id><your_repo_url><group_id><artifact_id><version><packaging><file_path> 在pom.xml里面,我们还要指定webdav的扩展,同时,pom文件中还需要指定artifactId, groupId和version,
4</file_path></packaging></version></artifact_id></group_id></your_repo_url></your_repo_id>)<your_repo_id><your_repo_url><group_id><artifact_id><version><packaging><file_path> pom文件的名字必须是pom.xml!错了就无法找到该文件!
下面是一个完整的pom.xml和命令行脚本:</file_path></packaging></version></artifact_id></group_id></your_repo_url></your_repo_id>
- <?xml version="1.0" encoding="UTF-8"?>
- <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
- <modelVersion>4.0.0</modelVersion>
-
- <groupId>org.eclipse.swt</groupId>
- <artifactId>win32</artifactId>
- <version>3.2.0</version>
-
-
- <build>
- <extensions>
- <extension>
- <groupId>org.apache.maven.wagon</groupId>
- <artifactId>wagon-webdav</artifactId>
- <version>1.0-beta-1</version>
- </extension>
- </extensions>
- </build>
- </project>
命令行:
mvn deploy:deploy-file -Dfile=win32.jar -Durl=dav:http://localhost:8080/repository -DpomFile=pom.xml
如果是把项目的artifact往私服上上传,就要方便的多了,首先在pom中指定wagon-webdav的扩展,如上所示。然后加入distributionManagement:
- <distributionManagement>
- <repository>
- <id>YOUR_REPOSITORY_FOR_RELEASES_ID</id>
- <name>Central Repository</name>
- <url>dav:YOUR_REPOSITORY_FOR_RELEASES_URL</url>
- </repository>
- <snapshotRepository>
- <id>YOUR_REPOSITORY_FOR_SNAPSHOTS_ID</id>
- <name>Central Development Repository</name>
- <url>dav:YOUR_REPOSITORY_FOR_SNAPSHOTS_URL</url>
- </snapshotRepository>
- </distributionManagement>
之后就可以运行mvn deploy了
分享到:
相关推荐
maven学习笔记maven学习笔记maven学习笔记
**Maven学习笔记** 在Java开发领域,Maven是一个不可或缺的构建工具,它极大地简化了项目的构建、管理和依赖管理过程。Maven通过使用一个项目对象模型(Project Object Model,POM),XML格式的配置文件,定义了...
** Maven基础入门 ** Maven是一个Java项目管理工具,它主要负责构建、依赖管理和项目信息管理。...在`maven_study_01`的学习笔记中,你可以找到更多关于Maven的基础知识和实践案例,帮助你快速上手并掌握这一工具。
maven仓库所需要的jar包,包含完整的内容,可以去看一下简绍(https://blog.csdn.net/Fly_tom/article/details/81874197),由于csdn网站上传文件的限制,这个只是一部分,另一部分:...
Maven框架,本地jar资源仓,中央仓下载jar资源 有时在你的构建过程中,需要将第三方jar包添加到本地仓库中,因为它并存在于像Maven中央仓库或其它的公共仓库中。为了让Maven能够正确获取到jar包,第三方jar包必须...
maven学习笔记整理
在本文中,我们将深入探讨maven_repository.zip压缩包中的几个关键文件及其对应的Java库,了解它们在实际开发中的作用。 1. **backport-util-concurrent**:这是一个将Java 5中的并发工具类库回移植到Java 1.3及更...
在“培训机构传出的maven学习笔记”中,我们可能涵盖以下几个关键知识点: 1. **Maven的基本概念**:理解Maven的核心概念,如POM.xml文件、仓库(本地仓库和中央仓库)、生命周期和构建阶段(如clean、compile、...
【Maven学习笔记1】 Maven是一个强大的Java项目管理和构建工具,它可以帮助开发者管理项目的依赖、构建过程、项目信息和报告。本笔记主要涵盖了Maven的基础知识,包括资料收集、安装指南,特别是针对Linux环境下的...
**Maven教程:基础篇——尚硅谷学习笔记 2022年** Maven是一个强大的Java项目管理和构建工具,由Apache软件基金会开发。它通过提供一个标准的项目对象模型(Project Object Model,POM)来简化项目的构建过程,并...
【尚硅谷Maven课程笔记代码资源】是一份全面学习Maven的资料集合,它涵盖了从基础到高级的各种知识点,旨在帮助开发者深入理解并熟练运用Maven进行自动化构建。该资源包含课件、源码和相关的笔记,使得学习过程更加...
【标题】"201205_Maven学习笔记2.rar" 涉及到的是 Maven,这是一个在软件开发中广泛使用的项目管理和综合工具。Maven 提供了一种标准化的方式来构建、文档化以及管理Java项目,它通过一个项目对象模型(Project ...
** Maven学习笔记详解 ** Maven,作为Java项目管理和构建工具,是开发人员不可或缺的利器。它通过使用一种标准化的项目对象模型(Project Object Model,POM)来管理项目的依赖关系,构建过程以及配置信息。Maven...
内容概要:maven学习笔记,适合刚接触maven的人能让你快速入门。 适用人群:大学生或者初基础maven的人 使用场景及目标:idea集成maven,用来下载依赖包
Maven学习笔记,使用中遇到的问题,集成eclipse的各种坑,以便记录,为了以后复习使用。
【Maven学习笔记】 Maven是一个强大的项目管理和构建工具,主要应用于Java开发领域。它能够自动管理项目的依赖关系,帮助开发者解决因jar包版本冲突、依赖管理混乱等问题带来的困扰。Maven通过制定一套规范化的项目...
【标题】:“201205_Maven学习笔记1.rar”揭示了关于Maven的深入学习内容,这个压缩包包含了一系列文档,旨在帮助开发者更好地理解和应用Maven这一强大的Java项目管理和构建工具。 【描述】:尽管描述部分是空的,...
**Maven项目学习笔记记录** 在软件开发领域,Maven是一个强大的项目管理和构建工具,尤其在Java开发中广泛使用。本笔记将深入探讨Maven的核心概念、主要功能以及实际应用场景,帮助你更好地理解和掌握这一重要工具...