maven依赖包快速下载

在离线环境进行maven项目开发时,总会遇到需要频繁添加jar包依赖来进行功能拓展,然而某一个jar包的引入,又会需要间接依赖很多其他的类库,一个一个地下载又很麻烦。当然你也可以在外网搭建一套同样的开发环境,通过开发工具自动下载,再把外网本地仓库拷贝到内外环境。这里记录一种稍微简单点的方法

1、前提:外网安装了maven以及配套java,并配置maven以及java环境变量;

2、随便找一个位置创建文件夹,在该文件夹下创建一个pom.xml文件

<?xml version="1.0"?>
<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/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>download</groupId>
    <artifactId>download</artifactId>
    <version>1.0.0</version>
    <dependencies>
        <dependency>
            <groupId>xxx</groupId>
            <artifactId>xxx</artifactId>
            <version>xxx</version>
        </dependency>
    </dependencies>
</project>

自己把需要下载的依赖补充完整。

3、当前目录下运行:

mvn -f pom.xml dependency:copy-dependencies

执行完成后,当前目录下会多出一个target文件夹,里头是下载的直接或间接依赖包,在maven仓库下会有完整的.jar和.pom,全部拷贝就好了。

4、maven认本地仓库为C:\Users\你的账户\.m2\repository;

可以自己改maven的相关配置,配置文件在maven安装目录下 /conf/settings.xml,设置本地仓库位置以及国内下载镜像源:

<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
	<localRepository>D:\ide\maven\localRepository</localRepository>
	<interactiveMode>true</interactiveMode>
	<offline>false</offline>
	<pluginGroups>
		<pluginGroup>org.apache.maven.plugins</pluginGroup>
		<pluginGroup>org.codehaus.mojo</pluginGroup>
	</pluginGroups>
	<proxies>
	<!--
		<proxy>
			<id></id>
			<active>true</active>
			<protocol>http</protocol>
			<username></username>
			<password></password>
			<host></host>
			<port></port>
			<nonProxyHosts></nonProxyHosts>
		</proxy>
	-->
	</proxies>
	<servers>
	<!--
		<server>
			<id></id>
			<username></username>
			<password></password>
		</server>
	-->
	<!--
		<server>
			<id>siteServer</id>
			<privateKey>/path/to/private/key</privateKey>
			<passphrase>optional; leave empty if not used.</passphrase>
		</server>
	-->
	</servers>
	<mirrors>
		<mirror>  
			<id>alimaven</id>  
			<name>aliyun maven</name>  
			<url>http://maven.aliyun.com/nexus/content/groups/public/</url>  
			<mirrorOf>central</mirrorOf>          
		</mirror>
	</mirrors>
	<profiles>
	</profiles>
	<activeProfiles>
	</activeProfiles>
</settings>

5、我自己把外网的repository全部复制到内网之后,出现了maven库不能用的问题,主要是repository里的_remote.repositories和*.lastUpdated文件导致的,需要删除

public class Test {
    public static void main(String[] args) {
        File file = new File("D:\\ide\\maven\\localRepository");
        delete(file);
    }
    private static void delete(File file) {
        if(file == null) {
            return;
        }
        if(file.isDirectory()) {
            File[] files = file.listFiles();
            if(files != null) {
                for(File childFile : files) {
                    delete(childFile);
                }
            }
        } else {
            if(file.getName().equals("_remote.repositories") || file.getName().endsWith(".lastUpdated")) {
                file.delete();
            }
        }
    }
}

相关文章

php输出xml格式字符串
J2ME Mobile 3D入门教程系列文章之一
XML轻松学习手册
XML入门的常见问题(一)
XML入门的常见问题(三)
XML轻松学习手册(2)XML概念