ソースからのインストールについて

CFIVE のソースからマニュアルでビルドを行う手順を説明します。

ビルドとインストール

事前導入ソフトウェア

以下のソフトウェアが導入されている事を確認して下さい.

名称 種別 バージョン
J2SDK ランタイム/コンパイラ 1.4.2 (1.4.2_04以上)
Tomcat(ないしはアプリケーションサーバ) サーブレットコンテナ 4.1.29以上
Apache Maven プロジェクト管理・ビルド 1.0以上

また、導入前に以下の項目を決めておく必要があります。なお本マニュアルでは、CFIVE のアーカイブを展開したディレクトリを ${CFIVE_SRC}, CFIVE をインストールする先のディレクトリを ${CFIVE}, Tomcat 等のサーブレットコンテナのインストール先を ${CATALINA_HOME} とします.

項目 本マニュアルでの例 参照される変数
(${CFIVE_SRC}/project.properties)
ログディレクトリ ${CFIVE}/WEB-INF/log cfive.logs.dir
アップロードされたファイルを置くディレクトリ ${CFIVE}/WEB-INF/upload cfive.upload.base
cfive.xml置場 ${CATALINA_HOME}/webapps/ なし

アーカイブの展開

CFIVEのソースを展開します。展開したディレクトリを、${CFIVE_SRC}とします。

インターネットへのアクセスにプロキシサーバを必要とする場合、project.propertiesを編集します。 以下の4つのプロパティを編集してください。

maven.proxy.host=
maven.proxy.port=

ライブラリのダウンロード・CFIVEのビルド

コマンドラインで Maven を実行します。

$ maven

依存ライブラリがダウンロードされ、target/cfive ディレクトリにWebアプリケーション一式がセットアップされます。

Tomcatへの配置

JDBCドライバ

JDBCドライバがTomcatのインストールディレクトリ以下に必要です。hsqldb.jar を ${CATALINA_HOME}/common/lib にコピーします。hsqldb.jar は以下の場所にダウンロードされています。

  • Linux 等の場合 - ${HOME}/.maven/repository/hsqldb/jars/
  • Windows の場合 - %USERPROFILE%/.maven/repository/hsqldb/jars/
    %USERPROFILE% は、通常以下の場所です。C:\Documents and Settings\<Windowsのユーザ名>

${CATALINA_HOME}/common/lib にコピーします。

$ cp ~/.maven/repository/hsqldb/jars/hsqldb-1.7.2.2.jar ${CATALINA_HOME}/common/lib

コンテキストXML

Tomcatのコンテキストを設定する方法が2通りあります。

  • アーカイブの展開先にバイナリを配置したまま実行する場合 - 上記のビルド中に、コンテキストXMLファイルと呼ばれるTomcat用の設定ファイル "cfive.xml" ができます。CFIVE のアーカイブを展開した位置でビルドし、その位置にバイナリを配置したまま実行する場合、cfive.xml を Tomcat インストール先の webapps ディレクトリにコピーするだけで実行が可能です。
    この方法は、開発時には便利です。
    $ cp cfive.xml ${CATALINA_HOME}/webapps
    
  • warファイルを作成する場合 - ビルドする環境と別のサーバで稼動させる場合などには、warファイルを作成してから、それをコピーすることができます。 以下のように maven コマンドを実行すると、${CFIVE_SRC}/target/cfive.war が作成されます。 作成した war ファイルを、Tomcat の webapps ディレクトリにコピーします。
    $ maven war
    $ cp target/cfive.war ${CATALINA_HOME}/webapps
    
    次に、コンテキストXMLファイル cfive.xml に書いてある内容を Tomcat の ${CATALINA_HOME}/conf/server.xml に記述します。その際に、docBase 属性にはビルドした環境のパスが書いてありますが、これを "cfive" に書き換えておきます。
    <Context path="/cfive" reloadable="false" docBase="cfive" priviledged="false">
    ...
    

Tomcatを起動

Tomcatを起動して、localhostでCFIVEを動作させます。

$ ${CATALINA_HOME}/bin/startup.sh (またはbat)

設定

以下では、各種設定を変更する手順を示します。

プラグインの変更

使用するプラグインの変更には${CFIVE}/WEB-INF/classes/plugins.xml を編集します。plugins.xmlはCFIVEで使用するプラグインに関する記述を行うファイルです.CFIVEのアーカイブに含まれるプラグインは全てこのファイル内に記載されています.

<userplugin>,<classplugin>,<courseplugin>,<courseuserplugin> <usergroupplugin>,<adminplugin>で記載されている箇所は「基本プラグイン」,<plugin>は「標準プラグイン」,または「オプションプラグイン」です.各プラグインの設定などはこのファイルを編集して行って下さい.

(プラグインによってはファイルのアップロードなどに伴うディレクトリを指定する必要があるものがあります.詳細は別紙「プラグイン説明書」を参照してください.)

<init-param>
初期値に関する設定を行います.
<param-name>
プラグイン中で必要なパラメータのパラメータ名を指定します.
<param-value>
上記のパラメータの値を記述します.
<className>
そのプラグインであるクラスを指定します.

ログファイルの出力先を変更する

ログファイルの出力先を変更する方法を示します。デフォルトでは、 ${CFIVE}/WEB-INF/log に設定されているので、必要がなければ変更する必要はありません。

なお、この設定はビルド前には project.properties のプロパティ cfive.logs.dir で設定されています。

${CFIVE}/WEB-INF/classes/log4j.properties を編集します。

...
log4j.appender.cfive.file = /path/to/cfive.log
...
log4j.appender.org.apache.torque.file = /path/to/torque.log
...

アップロードされたファイルを置くディレクトリを変更する

CFIVEの中の機能によっては、ファイルのアップロードができるものがあります。アップロードされたファイルを置くディレクトリを変更することができます。デフォルトでは ${CFIVE}/WEB-INF/upload に設定されているので、必要がなければ変更する必要はありません。

なお、この設定はビルド前には project.properties のプロパティ cfive.upload.base で設定されています。

${CFIVE}/WEB-INF/classes/plugins.xml を編集します。ファイルのアップロードを扱うプラグインごとに設定する必要があります。プラグインごとの <init-param> 要素にて設定されています。

掲示板プラグイン

  <init-param>
    <param-name>upload_dir</param-name>
    <param-value>/path/to/upload/bbs</param-value>
  </init-param>
  ...
  <className>cfive.plugin.bbs.BbsPlugin</className>

テストプラグイン

  <init-param>
    <param-name>upld_dir</param-name>
    <param-value>/path/to/upload/questest</param-value>
  </init-param>
  <className>cfive.plugin.questest.QuestestPlugin</className>

課題プラグイン

  <init-param>
    <param-name>repository</param-name>
    <param-value>/path/to/upload/assign_report</param-value>
  </init-param>
  ...
  <className>cfive.plugin.assignment.AssignmentPlugin</className>

教材プラグイン

  <init-param>
    <param-name>repository</param-name>
    <param-value>/path/to/upload/text</param-value>
  </init-param>
  ...
  <className>cfive.plugin.text.TextPlugin</className>