Archiva 创建私服
写在前面:这篇文章大部分是别人写好的,只有后来关于maven的proxy的设置是针对我个人的,因为本人所在公司采用了代理,所以必须设置才行。
WAR安装模式(WinXP,tomcat7.x)
1)首先到archiva主页,在历史版本里下载版最新稳定版的war文件。
2)添加war文件
在tomcat根目录下创建文件夹archiva,把apache-archiva-1.3.6.zip名字改成archiva.war并且拷贝到刚刚创建的%TOMCAT_HOME%/archiva目录下
3)添加tomcat配置文件
创建文件<Tomcat_Home>/conf/Catalina/localhost/archiva.xml,并且写入以下内容
<Context path="/archiva" docBase="${catalina.home}/archiva/archiva.war"> <!--*.war必须和放入的archiva文件夹的war包名字一样-->
<Resource name="jdbc/users" auth="Container" type="javax.sql.DataSource"
username="sa"
password=""
driverClassName="org.apache.derby.jdbc.EmbeddedDriver"
url="jdbc:derby:/path/to/database/users;create=true" />
<Resource name="jdbc/archiva" auth="Container" type="javax.sql.DataSource" username="sa"
password=""
driverClassName="org.apache.derby.jdbc.EmbeddedDriver"
url="jdbc:derby:/path/to/database/archiva;create=true" />
<Resource name="mail/Session" auth="Container"
type="javax.mail.Session"
mail.smtp.host="localhost"/>
</Context>
注意,由于我使用的是tomcat6.x+版本,需要把xml头 <?xml version="1.0" encoding="UTF-8"?>去掉。
把上边蓝色的部分改成你的本地路径,比如D:\Software\Archiva\database/archiva和D:\Software\Archiva\database/user
Archiva将会自动新建两个目录分别名为archiva和user,并且自动创建DB文件,这点很省心。但是要注意一定要用两个独立的目录,不然文件就乱了。
4)拷贝运行时需要的jar到tomcat的lib目录下
derby-10.1.3.1.jar(或更高版本),activation-1.1.jar和mail-1.4.jar这三个jar
5)更改catalina.bat文件
加入参数
set CATALINA_OPTS=-Dappserver.home=%CATALINA_HOME% -Dappserver.base=%CATALINA_HOME%
注意一定要写在正确的位置。 我为了方便,加在最后了 这是我的文件
:doneSetArgs set CATALINA_OPTS=-Dappserver.home=%CATALINA_HOME% -Dappserver.base=%CATALINA_HOME%rem Execute Java with the applicable properties
if not "%JPDA%" == "" goto doJpda
if not "%SECURITY_POLICY_FILE%" == "" goto doSecurity
%_EXECJAVA% %JAVA_OPTS% %CATALINA_OPTS% %DEBUG_OPTS% -Djava.endorsed.dirs="%JAVA_ENDORSED_DIRS%" -classpath "%CLASSPATH%" -Dcatalina.base="%CATALINA_BASE%" -Dcatalina.home="%CATALINA_HOME%" -Djava.io.tmpdir="%CATALINA_TMPDIR%" %MAINCLASS% %CMD_LINE_ARGS% %ACTION%
goto end
设置参数CATALINA_OPTS时,等号后边一定不能有双引号。
最近一次复习的时候发现,这些都不管用了,启动tomcat后进入archiva主页,弹出404错误,根据官网 http://archiva.apache.org/docs/2.0.1/adminguide/webapp.html 里面的 Diagnosing Errors提到的路径查看日志,发现下面错误:
严重: Exception sending context destroyed event to listener instance of class org.apache.maven.archiva.web.startup.ArchivaStartup
org.springframework.beans.factory.BeanDefinitionStoreException: Invalid bean definition with name 'registry#commons-configuration' defined in null: Could not resolve placeholder 'appserver.home'
Google搜索了下,有人说将CATALINA_OPTS设置为环境变量,我试了下,果然行。
==============配置Maven连接的repository==============
虽然可以直接修改pom.xml文件来更改repository地址,但是可重用性并不好。 建议修改~/.m2目录下的settings.xml文件 只要建立一个镜像就可以了,如下<mirrors>
<mirror>
<id>archiva</id>
<mirrorOf>*</mirrorOf>
<url>http://localhost:8080/archiva/repository/internal </url>
</mirror>
</mirrors>
由于archiva默认只有central和maven2-repository.dev.java.net
这两个仓库作为下载仓库,一些其他的jar可能不在这两个仓库里(比如
scannotation-1.0.3.jar
),
我们需要自己手工加上。
参考链接:
http://www.mkyong.com/maven/how-to-add-remote-repositories-in-apache-archiva/
http://www.mkyong.com/maven/how-to-add-proxy-connector-in-apache-archiva/
不但需要在Repositories页面点击RemoteRepositories后的 Add来添加我们需要加入的仓库地址,同时还要在Proxy Connectors页面增加相应的 Connector,这样Archiva才能知道它需要代理的仓库。
===============问题作出回应了,怎么还是抛出类似不处理就罢工的信息==================
有时 maven在执行 mvn clean package这样命令老是遇到同一个错误的时候,它会从缓存中看问题是否解决了,如果没有解决,会抛出同样的错误信息,尽管你可能从别的地方解决了。
可以通过 mvn clean package–U让Maven强制执行打包任务。
===============如何设置Proxy,当公司内部有代理==============
请注意,之前我们的设置是将archiva.war作为一个应用放入Tomcat中,这样我们访问archiva通过http://localhost:8080/archiva,而且一切Maven的请求将通过这个网址进行代理。
如果没有采用Nexus或者Archiva做私服,当公司对网络采用代理时,那么~/.m2/settings.xml中关于Proxy的标准设置代码就应该加上并且是:
(Hint:首先确认自己无法直接访问公共的Maven中央仓库,直接运行命令 ping repo1.maven.org可以检查网络。如果真的需要代理,先检查一下代理服务器是否畅通。比如下载有一个IP地址为 3.209.100.82,端口为80的代理服务,我们可以运行telnet 3.209.100.82 80来检测该地址的该端口是否畅通。如果得到错误信息,需要先获取正确的代理服务信息;如果telnet链接正确,则输入ctrl + 】,然后q,回车,退出即可)
<proxy>
<id>igate-proxy</id>
<active>true</active>
<protocol>http</protocol>
<host>3.209.100.82</host>
<port>80</port>
<nonProxyHosts>*.baidu.com|*.google.com </nonProxyHosts>
</proxy>
如果使用了私服(我这里用的是Archiva)并且公司内网使用了代理,那么就要对Archiva做两步处理,让所有的maven请求通过Archiva,而Archiva的所有请求必须通过公司的内网代理,配置如下:
第一步:进入Archiva的管理页面,点击左侧栏的Network Proxies,如下:
点击Add Network Proxy链接,进入编辑页面:
Identifier会在后面用到,这里Hostname是我们公司内部使用的代理IP,端口是80.
点击Save Network Proxy按钮。这里我们就设置好了代理,那么怎么让Archiva的请求知道这个代理并把请求经过这个代理转发呢?
第二步:进入Archiva的管理页面,点击左侧栏的Proxy Connnectors,如下:
点击每一个Proxy Connector右上角的铅笔图标进行编辑,下面选择Central Repository作为例子:
可以发现,我们当初进行Proxy Connector编辑的时候,由于我们还没有设置Network Proxy,所有只有一个(direct connection)这个默认值,现在这个下拉列表中有了我们刚才定义的Network Proxy (igate-proxy), 这里更改igate-proxy作为Central Repository的Network Proxy。至此我们在公司内网使用代理的情况下私服也能正常工作了。
Archiva 创建私服相关推荐
- 使用Nexus创建私服
使用Nexus创建私服 部署环境是windowsxp 首先从 http://nexus.sonatype.rog/downloads 下载最新版的Nexus 我们可以根据个人的需求下载.里面有nexu ...
- 创建私服maven服务
本地部署maven 1.下载maven,在pc端安装maven,然后将下载的maven解压到本地目录.如解压到d:\develop\apache-maven-3.5.0,配置maven的环境变量,通过 ...
- Docker安装 下载镜像 部署容器 备份 创建私服
Docker 学习目标: 掌握Docker基础知识,能够理解Docker镜像与容器的概念 完成Docker安装与启动 掌握Docker镜像与容器相关命令 掌握Tomcat Nginx 等软件的常用应用 ...
- Docker私服搭建
在开发中我们如果需要交付容器我们有哪些方式?实际上我们可以直接把文件打成压缩包的形式,也可以通过私服进行传递 1.压缩文件形式 docker commit 容器id 镜像名:tag image to ...
- Maven安装配置和私服搭建
Maven项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具. 在项目开发中Maven可以对jar包和对工程之间的依赖关系进行管理,集成tomcat插件,ma ...
- 搭建Maven私有仓库
内部的项目并且需要多团队协作模块化开发的时候,自然会想到搭建自己的maven私有仓库,本文主要介绍如何搭建maven私服和如何在项目中添加依赖. Maven 的远程仓库分为中央仓库和私服仓库.中央仓库 ...
- 大厂首发!java敏捷开发模式面试题
Maven权威指南 首先,本书适合所有Java程序员阅读.由于自动化构建.依赖管理等问题并不只存在于Java世界,因此非Java程序员也能够从该书中获益.无论你是从未接触过Maven.还是已经用了Ma ...
- [原创]Maven实战-读书笔记
Maven读书笔记 Maven读书笔记 依赖 快捷键:Alt+Shift+X M 使用ArcheType来创建Maven项目骨架: Maven中坐标的定义 依赖范围 依赖传递 依赖调解 可选依赖 ...
- 大厂首发:338页网易Java面试真题解析火爆全网
前言 为什么互联网资讯这么发达,但是没有出现技术人才井喷? 为什么会出现应届生薪资倒挂多年老员工的现象? 这个世界有太多的现象都可以用**"二八定律"**来解释. 20%拿着高工资 ...
最新文章
- java开发中的Mutex vs Semaphore
- 一个将字符串转换为整数的函数--atoi()
- HDU 1088 Write a simple HTML Browser
- REST、RESTful 与 RESTful API
- 【ARM】Tiny4412裸板编程之异常(软中断)
- ios android cpu占用率,iPhone-iOS-从应用程序获取CPU使用率
- 【转载保存】修改IK分词器源码实现动态加载词典
- PHP中字符串类型与数值类型混合计算
- nmea怎么转wgs84坐标c语言源码,NMEA-0813数据格式说明
- 龙芯2h芯片不能进入pmon_基于龙芯2F架构的PMON分析与优化
- 【DDD落地实践系列】DDD领域驱动设计如何进行工程化落地
- 实用技巧——Python实现从Excel读取数据并绘制成图像
- ​Podman Desktop: 一款超高颜值和功能强大的 Podman 桌面管理工具
- MySQL解决幻读详解
- NYOJ 541 最强DE 战斗力(大数水)
- Ultraedit 使用技巧
- ElasticSearch:部署ElasticSearch Kibana
- Python—6.1、日期时间
- 落户申请 有计算机证书,考信息系统项目管理师证书是不是可以申请入户
- 小学阅读方法六种_小学语文六年级阅读方法及技巧
热门文章
- c语言字母转换数字代码,实现c语言中字符串和数字的相互转换的代码
- 机器学习_正规方程(最小二乘法)的推导
- Data Types in the Kernel [LDD3 11]
- flask 使用html模板,Flask框架使用HTML模板的方法
- matlab第八课:图像分析(下)
- 分享三款免VIP软件,小众实用,正是你需要但没找到的
- 搞懂这 10 张脑图后,我膨胀了。
- hdu 1850 Being a Good Boy in Spring Festival (尼姆博弈)
- 仿QQ2011界面 MFC
- repost 力出一孔,“感觉睡觉都是在浪费时间”--孙正义