Continuum 安装升级指南

系统需求
JDK > 1.5
内存 没有最小需求
磁盘 最少30MB,Checking out 和 building sources 时需要更多
操作系统 没有最小需求。在 Windows XP, Debian, Fedora Core, Solaris 和 Mac OSX都做过测试
不同的安装环境(standalone, webapp, service)
Standalone 独立运行的安装
基本原理和原则
1.下载standalone版本
2. 解压文件
3. 设置JAVA_HOME环境变量
定义JNDI资源
邮件服务器配置
在你启动Continuum之前,你必须配置你的SMTP配置来支持邮件通知。配置在 $CONTINUUM_HOME/conf/jetty.xml中进行:
<New id=”validation_mail”>
<Arg>mail/Session</Arg>
<Arg>
<New>
<Set name=”user”></Set>
<Set name=”password”></Set>
<Set name=”properties”>
<New>
<Put name=”mail.smtp.host”>localhost</Put>
</New>
</Set>
</New>
</Arg>
</New>
数据库配置
缺省情况下,Continuum使用一个嵌入的Derby数据库。如果你想使用其他的数据库,你可以修改 $CONTINUUM_HOME/conf/jetty.xml 的 JNDI 配置:
<!– continuum database –>
<New id=”continuum”>
<Arg>jdbc/continuum</Arg>
<Arg>
<New>
<Set name=”DatabaseName”><SystemProperty name=”appserver.base” default=”..”/>/data/databases/continuum</Set>
<Set name=”user”>sa</Set>
<Set name=”createDatabase”>create</Set>
</New>
</Arg>
</New>
<New id=”continuumShutdown”>
<Arg>jdbc/continuumShutdown</Arg>
<Arg>
<New>
<Set name=”DatabaseName”><SystemProperty name=”appserver.base” default=”..”/>/data/databases/continuum</Set>
<Set name=”user”>sa</Set>
<Set name=”shutdownDatabase”>shutdown</Set>
</New>
</Arg>
</New>
<!– Users / Security Database –>
<New id=”users”>
<Arg>jdbc/users</Arg>
<Arg>
<New>
<Set name=”DatabaseName”><SystemProperty name=”appserver.base” default=”..”/>/data/databases/users</Set>
<Set name=”user”>sa</Set>
<Set name=”createDatabase”>create</Set>
</New>
</Arg>
</New>
<New id=”usersShutdown”>
<Arg>jdbc/usersShutdown</Arg>
<Arg>
<New>
<Set name=”DatabaseName”><SystemProperty name=”appserver.base” default=”..”/>/data/databases/users</Set>
<Set name=”user”>sa</Set>
<Set name=”shutdownDatabase”>shutdown</Set>
</New>
</Arg>
</New>
安装Windows服务
1. 执行 continuum.bat install
2. 编辑 Apache continuum 服务
要查看你计算机上的服务,开始-》运行,输入 services.msc
3. 选择启动类型Startup Type
4. 打开 Log On 标签页,选择一个真实用户。真实用户需要,是因为你需要一个home目录来存放Maven仓库和其他的内容
5. 检查你的修改
安装Linux服务
• /etc/init.d 里面的基本脚本
在 /etc/init.d/ 创建一个 continuum 文件,内容如下,用你已有的帐号名取代 continuum_user:
#!/bin/sh
CONTINUUM_HOME=/opt/continuum-1.3
su – continuum_user -c “$CONTINUUM_HOME/bin/continuum console $@ &”
• 在基于Debian的系统
ln -s /usr/local/continuum-[VERSION]/bin/continuum /etc/init.d/continuum
在不同的运行级别上添加软连接,执行
update-rc.d -n continuum defaults 80
• 在基于RedHat的系统上
需要使用 chkconfig 命令来添加新的服务。需要增加一些注释到 /etc/rc.d/init.d/continuum 脚本,并且执行执行一些命令。编写一个chkconfig_install.sh 的脚本来完成上面的工作。内容如下,其中 _continuum_user_ 需要用你已有的帐号名来取代。
#! /bin/sh
#
# chkconfig_install.sh – install Continuum on a chkconfig-based system
#
# Author: Felipe Leme <felipeal at apache.org>
#
# figure out what’s Continuum’s directory
CONTINUUM_HOME=`dirname $0`
cd ${CONTINUUM_HOME}
CONTINUUM_HOME=`pwd`
INITD_SCRIPT=/etc/rc.d/init.d/continuum
if [ -f ${INITD_SCRIPT} ]
then
echo “File ${INITD_SCRIPT} already exists. Please remove it and try again.”
exit 1
fi
echo “Creating file ${INITD_SCRIPT}”
cat >> ${INITD_SCRIPT} <<EOF
#! /bin/sh
# chkconfig: 345 90 10
# description: Apache Continuum server
# uncoment to set JAVA_HOME as the value present when Continuum installed
#export JAVA_HOME=${JAVA_HOME}
if [ -z "\${JAVA_HOME}" ]
then
echo “Cannot manage Continuum without variable JAVA_HOME set”
echo ”  (try to set it on file ${INITD_SCRIPT})”
exit 1
fi
# run Continuum as root
cd ${CONTINUUM_HOME}
./bin/continuum \$*
# run Continuum as user _continuum_user_
#su – _continuum_user_ -c “cd ${CONTINUUM_HOME}; ./bin/continuum \$*”
EOF
chmod +x ${INITD_SCRIPT}
echo “Adding Continuum to chkconfig”
chkconfig –add continuum
echo “Enabling Continuum on chkconfig”
chkconfig continuum on
echo “Continuum set to start on run levels 3, 4 and 5.”
echo “To start Continuum now, run ‘service continuum start’”
Posted in Continuum | Leave a comment

Apache Archiva 的安全角色

Archiva使用Redback安全框架来管理仓库的安全。当服务器第一次启动,将提示你创建管理员用户。这个用户有系统的所有权限。这个用户可以赋予权限给其他的用户。

缺省情况下,一个guest用户被创建,对缺省的仓库(internal和snapshots)赋予读访问的权限。能用guest用户访问的仓库,不需要输入用户名和密码(或者不需要登录web界面)。

当新的仓库创建,缺省没有赋予任何权限,仅仅管理员能访问。

注意 Redback 有推测角色的概念, 因此一些角色的分配将指向其他的角色(在web界面有显示)。

仓库角色

Archiva对于仓库的访问,有下面几种角色:

  • repository observer : 有权读取指定仓库
  • repository manager : 有权读写指定仓库
  • global repository observer :有权读取所有仓库
  • global repository manager :有限读写所有仓库

一般角色

  • 系统管理员:能使用系统的所有功能
  • 用户管理员:对系统的其他用户,有创建、编辑和指定角色的权限。
  • guest 和 registered user 角色并不影响参考的访问。
Posted in Archiva | Leave a comment

Apache Archiva 的仓库配置

Archiva 有两种类型的仓库配置: managed repository 和 remote repository。
+ managed repository
位于运行 Archiva 服务器的本地仓库。它可以作为一个代理仓库,内部部署仓库或者本地镜像仓库。
Managed repostitory 的字段:
identifier – 仓库的ID,必须是唯一的。
name – 仓库的名字。
directory – 仓库的位置。如果指定的路径不存在, 将由archiva创建一个。
index directory – Archiva 生成的索引存放的位置。如果没有指定,索引目录(.indexer)将在仓库的根目录创建。
type – 仓库的布局(maven2 或者 maven 1)
cron – 执行仓库扫描的cron计划
repository purge by days older – 仓库净化的第一个选项。根据天数来净化。值为0,则不使用。最大值为1000。
repostiory purge by retention count – 仓库净化的第二个选项。根据保留数量净化。保留指定数量的snapshots。
releases included – 指定仓库中是否含有 released artifacts。
block re-deployment of released artifacts – 当released artifact存在时,是否允许覆盖。仅仅影响非snapshot的部署。
snapshots-included – 指定仓库中是否保存snapshots。
scannable – 指定仓库是否能被扫描,表示它是个本地仓库,能被索引,浏览,净化等等。
delete released snapshots – 在仓库净化时,是否删除有 released 对应的snapshot。
每一个仓库都有自己的Webdav URL,用户可以通过浏览器访问仓库。URL的格式如下:
http://[URL TO ARCHIVA]/repository/[REPOSITORY ID] (e.g. http://localhost:8080/archiva/repository/releases).
POM 的 <distributionManagement>段可以被复制和粘贴到一个项目的pom,这个项目可以发布到指定的managed repository。  从另一个方面来讲,在构建项目时,<repository> 段可以复制和粘贴到一个项目的pom或者Maven的setting.xml,告诉 Maven 从 managed repository 那里或者 artifacts。
+ remote repository
远程仓库,就是位于远程的仓库。这些仓库通常是代理仓库。参考 Proxy Connectors 看看如何代理一个仓库。
远程仓库字段:
identifier – 远程仓库的ID
name – 远程仓库的名字
url 远程仓库的URL。也可以使用 file:// 格式的URL来代理一个本地的仓库。注意如果本地仓库是一个archiva的managed repository,并且拥有一些 proxies connectors ,这些连接器将不会被触发。
username – 访问远程仓库的用户名(如果需要认证)
password – 访问远程仓库的密码(如果认证需要)
type – 远程仓库的布局(maven 2 或者 maven 1)
+ 扫描一个仓库
可以按计划扫描仓库,或者可以在repositories页面点击 “Scan Repository Now“来明确执行。
缺省只处理新(最后一次扫描为准)的artifacts。可以指定执行扫描全部artifacts。
对于scanner发现的每一个artifact,由不同的consumers处理,这些consumers包括 indexing, reository purge 和 database update。
+ 仓库净化
按天数净化
按保留数量净化
可以通过配置,当有released时,删除snapshot
+ 扫描一个数据库
跟仓库扫描一样,可以按计划或者明确执行。在“数据库”页面配置,”Database – Unprocessed Artifacts Scanning’ 段。
在扫描完仓库后,扫描数据库是必须的,artifacts的pom信息将被consumers轮番处理后,增加到数据库。
Posted in Archiva | Leave a comment