Maven内网使用问题

leosdaddy 发布于 2015/06/29 16:59
阅读 2K+
收藏 0

最近在学习使用Maven,但是因为公司规定导致,只可以在内网环境进行开发。

因为Maven所有的操作都基于插件进行,而官网上是不提供包含了所有插件的Maven下载的,只能下载完成之后,进行mvn 操作再进行插件下载。

因为网络限制,所以我考虑的是,在外网机器上安装Maven,执行了mvn 操作之后,将 repository目录下的插件拷贝到内网使用。

但是蛋疼的问题来了,拷贝完成之后,执行mvn操作还是会提示download,同时操作失败。

想问一下各位在使用maven进行日常开发的时候,是如何规避这样的问题的!

另:因为网络隔绝,所以用代理的方式也是不可行的!!!

加载中
0
双_双
双_双

日常开发的时候,在公司内部搭建一个私服,仅需要私服一台电脑访问外网。

如果你们公司完全限制网络访问,用拷贝的方法应该也是可以的。repository目录下放的一般是dependency的jar包,而插件一般放在用户目录的.m2文件夹下,所以该目录也要拷贝。

0
百鬼夜行抄
百鬼夜行抄

很简单啊 ,1)不能上外网的公司都是屎。2)不要在屎一样的公司工作

0
leosdaddy
leosdaddy

引用来自“双_双”的评论

日常开发的时候,在公司内部搭建一个私服,仅需要私服一台电脑访问外网。

如果你们公司完全限制网络访问,用拷贝的方法应该也是可以的。repository目录下放的一般是dependency的jar包,而插件一般放在用户目录的.m2文件夹下,所以该目录也要拷贝。

恩,私服是没办法了,网络是物理隔绝的。

我修改了setting.xml中repository的位置,同时把插件也拷贝至了目标位置,插件也还是不可以使用。

同时我又把插件拷贝至用户目录下的.m2目录,还是无法使用。maven还是提示去下载插件,同时下载失败。

所以想求助看看,不知道maven对于插件是否存在是如何进行判断的。


leosdaddy
leosdaddy
回复 @Sub : 同为3.3.3版本
Sub
Sub
回复 @leosdaddy : 确保你的 maven 的版本一致, 不同的maven 默认使用的插件版本号是不一样的。
leosdaddy
leosdaddy
回复 @Sub : 我执行了一次mvn clean之后,clean插件是已经下载的,拷贝插件后,内网执行clean还是提示会下载。 其他的所有插件也都下载完了,拷贝进去之后,还是会提示下载。
Sub
Sub
在 copy 之前,需要执行完整的 lifecycle,比如 1. mvn clean 2. mvn deploy 3. mvn site 这样才能保证所有的插件和依赖包全部下载完成,然后在copy .m2 目录
0
leosdaddy
leosdaddy

引用来自“百鬼夜行抄”的评论

很简单啊 ,1)不能上外网的公司都是屎。2)不要在屎一样的公司工作

也不能一棍子打死吧,这个跟公司性质、工作内容都有一定的关系。
0
天使小楠
天使小楠
我也刚学,回答可能肤浅:在内网搭建一个nexus私服,仅限这台服务器上网,老板应该允许的吧,以后你部门同事都可以去nexus上取jar
leosdaddy
leosdaddy
算是家大公司吧,公司制度如此,也没法通过谁去通融。 允许我做一个悲伤的表情。
0
dkf_genius
dkf_genius

添加下面的设置到你的/.m2/settings.xml

1. 优先考虑本地

<profile>
    <id>local</id>
    <activation>
        <activeByDefault>true</activeByDefault>
    </activation>
    <repositories>
        <repository>
            <id>local</id>
            <name>Local Repository</name>
            <url>https://localhost:8081/nexus/content/groups/public</url>
            <releases>
                <enabled>true</enabled>
                <updatePolicy>daily</updatePolicy>
            </releases>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
        </repository>
    </repositories>
    <pluginRepositories>
        <pluginRepository>
            <id>local</id>
            <name>Local Repository</name>
            <url>https://localhost:8081/nexus/content/groups/public</url>
            <releases>
                <enabled>true</enabled>
                <updatePolicy>interval:30</updatePolicy>
            </releases>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
        </pluginRepository>
    </pluginRepositories>
</profile>

2.全部通过本地

<mirrors>
    <mirror>
        <id>nexus-local-mirror</id>
        <name>Nexus local mirror</name>
        <url>http://localhost:8081/nexus/content/groups/public</url>
        <mirrorOf>*</mirrorOf>
    </mirror>      
</mirrors>
0
要学习的小强
要学习的小强

大师你的问题最后怎么解决 的

0
星汉
星汉

创建一个私服,你不是离线下载的jar包吗,将你下载的jar包全部上传到私服上,这样再使用Maven就可以了!https://my.oschina.net/u/3754001/blog/1930065

返回顶部
顶部