nsf*_*n55 151
您可以在离线模式下运行maven mvn -o install.当然,本地存储库中没有的任何工件都将失败.Maven不是基于分布式存储库,但它们确实使事情更加无缝.由于这个原因,许多商店使用内部镜子,与中央回购增量同步.
此外,mvn dependency:go-offline还可以用于确保在开始脱机工作之前已在本地安装所有依赖项.
Mar*_*elo 10
如果您的LAN中有可以访问Internet的PC,则应安装本地Maven存储库.
我推荐Artifactory Open Source.这是我们在组织中使用的,它很容易设置.
Artifactory充当您的构建工具(Maven,Ant,Ivy,Gradle等)与外部世界之间的代理.
它会缓存远程工件,因此您无需一遍又一遍地下载它们.
它阻止对内部工件的不需要的(有时是安全敏感的)外部请求,并控制工件的部署方式和位置,以及由谁控制.
设置Artifactory之后,您只需要settings.xml在开发机器中更改Maven :
<?xml version="1.0" encoding="UTF-8"?>
<settings xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd" xmlns="http://maven.apache.org/SETTINGS/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<mirrors>
<mirror>
<mirrorOf>*</mirrorOf>
<name>repo</name>
<url>http://maven.yourorganization.com:8081/artifactory/repo</url>
<id>repo</id>
</mirror>
</mirrors>
<profiles>
<profile>
<repositories>
<repository>
<snapshots>
<enabled>false</enabled>
</snapshots>
<id>central</id>
<name>libs-release</name>
<url>http://maven.yourorganization.com:8081/artifactory/libs-release</url>
</repository>
<repository>
<snapshots />
<id>snapshots</id>
<name>libs-snapshot</name>
<url>http://maven.yourorganization.com:8081/artifactory/libs-snapshot</url>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<snapshots>
<enabled>false</enabled>
</snapshots>
<id>central</id>
<name>plugins-release</name>
<url>http://maven.yourorganization.com:8081/artifactory/plugins-release</url>
</pluginRepository>
<pluginRepository>
<snapshots />
<id>snapshots</id>
<name>plugins-snapshot</name>
<url>http://maven.yourorganization.com:8081/artifactory/plugins-snapshot</url>
</pluginRepository>
</pluginRepositories>
<id>artifactory</id>
</profile>
</profiles>
<activeProfiles>
<activeProfile>artifactory</activeProfile>
</activeProfiles>
</settings>
Run Code Online (Sandbox Code Playgroud)
我们使用此解决方案是因为我们的开发机器中存在Internet访问问题,而某些工件下载了损坏的文件或根本没有下载.从那以后我们没有遇到任何问题
你有两个选择:
1.)在settings.xml中进行更改,将其添加到第一个标记中
<localRepository>C:/Users/admin/.m2/repository</localRepository>
Run Code Online (Sandbox Code Playgroud)
2.)使用-o标签进行离线命令.
mvn -o clean install -DskipTests=true
mvn -o jetty:run
Run Code Online (Sandbox Code Playgroud)
Maven需要本地存储库中的依赖项.获得它们的最简单方法是使用互联网访问(或使用此处提供的其他解决方案更难).
因此,假设您可以临时访问Internet,您可以使用maven-dependency-plugin及其依赖项来准备脱机:脱机目标.这会将所有项目依赖项下载到本地存储库(当然,依赖项/插件中的更改将需要新的Internet /中央存储库访问).
可悲的是,
dependency:go-offline它对我不起作用,因为它没有缓存所有内容,即。POM 文件和其他隐式提及的依赖项。
解决方法是指定本地存储库位置,可以在settings.xml文件中使用参数,也可以使用参数<localRepository>...</localRepository>运行。初始项目构建后,应缓存所有必要的工件,然后您可以以相同的方式引用存储库位置,同时以离线模式运行 Maven 构建 ( )。mvn-Dmaven.repo.local=...mvn -o ...
| 归档时间: |
|
| 查看次数: |
135167 次 |
| 最近记录: |