Maven2を実行すると以下のエラーが出た。
[INFO] Error getting reports from the plugin ‘org.codehaus.mojo:cobertura-maven-plugin:2.3′: Unable to find the mojo ‘dump-datafile’ (or one of its required components) in the plugin ‘org.codehaus.mojo:cobertura-maven-plugin’ net/sourceforge/cobertura/coveragedata/CoverageDataContainer (Unsupported major.minor version 49.0)
すごくはまったんだけど、これはpom.xmlの書き方がおかしいときに発生するみたい。
上の例はcobertura-maven-plugin2.3で発生したんだけど、JDKのバージョンによってはエラーになるみたい。
cobertura-maven-pluginのサイトを読んでみると、Goalsに書いているpom.xmlの書き方と、Usageに書いてあるpom.xmlの書き方が異なる。
どうも、Usageの書き方はJDK1.4で動く。
<project> ・・・ <reporting> <plugins> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>cobertura-maven-plugin </artifactId> <configuration> <formats> <format>xml</format> <format>html</format> </formats> </configuration> </plugin> </plugins> </reporting> </project>
JDK1.6(たぶん、1.5も?)の場合は、Goalsの書き方じゃないと動かなかった。
<project> ・・・ <build> <pluginManagement> <plugins> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>cobertura-maven-plugin</artifactId> <version>2.3</version> </plugin> </plugins> </pluginManagement> <plugins> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>cobertura-maven-plugin</artifactId> <version>2.3</version> </plugin> </plugins> </build> <reporting> <plugins> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>cobertura-maven-plugin</artifactId> <version>2.3</version> <configuration> <formats> <format>xml</format> <format>html</format> </formats> </configuration> </plugin> </plugins> </reporting> <project>
HudsonでMaven2を実行したときに以下のエラーが出た。
Embedded error: Error rendering Maven report: Exit code: 1 – ${HUDSON_HOME}/jobs/${PROJECT}/workspace/${PROJECT}/src/test/java/XXXXXX.java:16: cannot access com.daipresents.TestClass bad class file: ${HUDSON_HOME}/jobs/${PROJECT}/workspace/${PROJECT}/target/classes/XXXXXXXX.class class file has wrong version 50.0, should be 48.0 Please remove or make sure it appears in the correct subdirectory of the classpath. import com.daipresents.TestClass;
持ち帰って調べてみたけど、JDKのバージョンを変えたのが原因みたい。
jdk1.6からjdk1.4に落としたのだが、1.6でコンパイルされた残骸がのこっていたみたいで、それをjdk1.4から参照しようとして、バージョンがおかしいと怒っている。
対応としては、ワークスペースをいったん削除して、再ビルドさせたら問題なく動作した。
参照しているJarなどのコンパイルJDKバージョンも、合わせるか、下位のバージョンにすべき。
HttpClient3.1 チュートリアル
ひさびさにHttpClientを使うことになったので、ユーザガイドのチュートリアルをもとにまとめる。
原文サイト
・Jakarta Commons HttpClient Tutorial
ちなみに上の原文サイトでは、HttpClient3.0を元に解説している。
Getting Ready
HttpClientの依存関係はdependenciesに書いてある。
commons-codecとcommons-loggingが必要。
Concepts
一般的なHttpClientの使い方は以下のステップになる。
HttpClientのインスタンスを作成する。 メソッドにあわせた(ここではGetメソッド)インスタンスを作成する。接続するURLはメソッドのコンストラクタに与える メソッドを実行する レスポンスを読み込む コネクションを開放する レスポンスを処理する
HttpClientの接続を開放するときには、接続が再利用可能かを確認することが必要となる。
Instantiating HttpClient
引数なしのコンストラクタだと、デフォルトの値が使われる。大体の場合、これでOKな設定になっている。
HttpClient client = new HttpClient();
Creating a Method
org.apache.commons.httpclient.methodsに定義されているメソッドを利用できる。
HttpMethod method = new GetMethod(“http://www.apache.org/”);
Execute the Method
executeMethodを使ってメソッドを実行する。
このメソッドはサーバのステータスコードを戻り値にしている。
int statusCode = client.executeMethod(method);
executeMethodによって投げられる例外は2種類。ひとつはHttpException、もうひとつは、IOException。
例外に関する詳細はthe HttpClient exception handling guideを参考のこと。
HttpException
HttpExceptionは論理エラーを表している、この例外はリクエストが送れなかった場合や、HTTP仕様に従っていないという致命的違反のために、処理できなかった場合に発生する。通常回復できないそうだ。
IOException
IOException ( HttpExceptionのサブクラス)は転送エラーやI/Oの問題が発生した場合に発生する可能性が高い。リトライして回復する場合がある。
Method recovery
HttpClientはIOExceptionが発生する間、自動でリトライを行うことができる。デフォルトでは3回のリトライを行う。
デフォルト値は
org.apache.commons.httpclient.params.DefaultHttpParamsFactory.getDefaultParamsから呼び出されているcreateParamsで設定されていた。getDefaultParamsメソッドはシングルトンになっている。
// createParamsメソッド params.setParameter(HttpMethodParams.RETRY_HANDLER, new DefaultHttpMethodRetryHandler());
つまり、以下と同じことをしていることになる。
client.getParams().setParameter(HttpMethodParams.RETRY_HANDLER, new DefaultHttpMethodRetryHandler());
独自の設定に書き換えることもできる。
DefaultMethodRetryHandler retryhandler = new DefaultMethodRetryHandler(10, true); client.getParams().setParameter(HttpMethodParams.RETRY_HANDLER, retryhandler);
サーバで処理されている時や、レスポンスでIOExceptionが発せしたときでもリトライは可能。
リトライはGETならば安全、POSTやPUTは危険らしい。
ウェイトさせてのリトライは、HttpClient でウェイト付きリトライを行う。 by 考え得る最高を常に行うさんにいい感じのがのってます。
Read the Response
レスポンスの読み込みはReadOnly。もっともシンプルなのがByte配列での読み込み。
byte[] responseBody = method.getResponseBody();
レスポンスの読み込み方法は以下の3つがある。
[...]
Maven2のsiteで「Unable to find javadoc command」
siteを動かしてみると以下のエラーが。
[INFO] javadoc:javadoc org.apache.maven.plugin.MojoExecutionException: An error has occurred in JavaDocs report generation:Unable to find javadoc command: The javadoc executable ‘C:\fujihara\Sun\SDK\jdk\bin\javadoc.exe’ doesn’t exist or is not a file. Verify the JAVA_HOME environment variable. at org.apache.maven.plugin.javadoc.JavadocReport.execute(JavadocReport.java:238) at org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:578) at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(DefaultLifecycleExecutor.java:508) at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleExecutor.java:328) at org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:151) at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:220) at org.apache.maven.embedder.MavenEmbedder.execute(MavenEmbedder.java:813) at org.maven.ide.eclipse.embedder.Maven2Executor.main(Maven2Executor.java:85) Caused by: org.apache.maven.reporting.MavenReportException: Unable to find javadoc command: The javadoc executable ‘C:\fujihara\Sun\SDK\jdk\bin\javadoc.exe’ doesn’t exist or is not a file. Verify the JAVA_HOME environment variable. at org.apache.maven.plugin.javadoc.AbstractJavadocMojo.executeReport(AbstractJavadocMojo.java:1172) at org.apache.maven.plugin.javadoc.JavadocReport.generate(JavadocReport.java:136) at org.apache.maven.plugin.javadoc.JavadocReport.execute(JavadocReport.java:224) … 7 more Caused by: java.io.IOException: The javadoc executable ‘C:\fujihara\Sun\SDK\jdk\bin\javadoc.exe’ doesn’t exist or is not a file. Verify the JAVA_HOME environment variable. at org.apache.maven.plugin.javadoc.AbstractJavadocMojo.getJavadocExecutable(AbstractJavadocMojo.java:2391) at org.apache.maven.plugin.javadoc.AbstractJavadocMojo.executeReport(AbstractJavadocMojo.java:1168) … 9 more [INFO] —————————————————————————- [ERROR] [...]
sm2eclipseからsiteを実行するとエラーが。
[ERROR] BUILD FAILURE maven2sample:maven2sample:jar:0.0.1-SNAPSHOT ( task-segment: [site] ) [INFO] —————————————————————————- [INFO] Internal error in the plugin manager executing goal ‘org.apache.maven.plugins:maven-project-info-reports-plugin:2.1:plugin-management’: Unable to find the mojo ‘org.apache.maven.plugins:maven-project-info-reports-plugin:2.1:plugin-management’ in the plugin ‘org.apache.maven.plugins:maven-project-info-reports-plugin’ [INFO] —————————————————————————-
原因不明。助けてーだったんですが、以下の設定をpom.xmlから消すとうまくいく。
<build> <extensions> <extension> <groupId>org.apache.maven.wagon</groupId> <artifactId>wagon-webdav</artifactId> <version>1.0-beta-2</version> </extension> </extensions> </build>
意味がわからんけど、plugin同士の相性?
Maven2のゴールまとめ(ログ付き)
CIサーバなどで設定するゴールをしらべるために、いろいろ動かしてログをとってみる。
mavenのAvailable Pluginsの簡易翻訳。
ゴールの種類 resources:resources・・・main/resoursesのコピー compiler:compile・・・mainソースのコンパイル resources:testResources・・・test/resourcesのコピー compiler:testCompile・・・testソースのコンパイル surefire:test・・・テストのレポート jar:jar・・・Jarファイル作成(プロジェクトにとってはearとかwar) install:install・・・ローカルリポジトリに成果物(jarとかwarとか)をインストール deploy:deploy・・・リモートに指定しているリポジトリにインストール
siteは未確認。siteだけじゃコンパイルしてくれないんだなー。
compile
やってくれること。
resources:resources compiler:compile [INFO] Scanning for projects… [INFO] —————————————————————————- [INFO] Building Unnamed – maven2sample:maven2sample:jar:0.0.1-SNAPSHOT [INFO] task-segment: [compile] [INFO] —————————————————————————- [INFO] resources:resources [INFO] Using ‘UTF-8′ encoding to copy filtered resources. [INFO] Copying 0 resource [INFO] compiler:compile [INFO] Compiling 1 source file to D:\Study\workspace\maven2sample\target\classes [INFO] —————————————————————————- [INFO] BUILD SUCCESSFUL maven2sample:maven2sample:jar:0.0.1-SNAPSHOT ( task-segment: [compile] ) [INFO] —————————————————————————- [INFO] Total time: 5 second [INFO] Finished at: Sat Jun 20 22:58:03 JST 2009 [INFO] Memory 1M/13M [INFO] —————————————————————————- test
やってくれること。
resources:resources compiler:compile resources:testResources compiler:testCompile surefire:test [INFO] Scanning for projects… [INFO] —————————————————————————- [INFO] Building Unnamed – maven2sample:maven2sample:jar:0.0.1-SNAPSHOT [INFO] task-segment: [test] [...]
Maven2の社内リポジトリ(Internal Repository)をWebDAVで構築する
Maven2のリポジトリ名称がよくわからなかったので、Introduction to Repositoriesを参考にまとめてみると、以下みたいになる。
central repositoryはMaven2で建ててくれている中央リポジトリ remove repositoryはSeaserのリポジトリみたいにサードパーティーの建てたリポジトリ local repositoryはローカルでMavenを動かしたとき中央やリモートのリポジトリからダウンロードしてくる場所。デフォルトでは「USER_HOME/.m2/reposiotry」になる internal repositoryは、社内リポジトリとか呼ばれている、社内で建てたリポジトリ
今回は、会社で作ったライブラリを補完できる、社内リポジトリを作ってみる。
デプロイとかができるようにWebDAVで作る。
スペシャルサンクスはUbuntuにMaven2リポジトリをWebDAVで構築する – yummy-yummyさん。
まずはApache
リポジトリとはいっても、ApacheでWebサーバを建てて、WebDAVを有効にしただけのもの。敷居が高そうに見えたけど、簡単にできた。
まずは、httpd.confを設定。今回はvhostを分けた。
Listen 50000 NameVirtualHost *:50000 <virtualhost *:50000=”"> DocumentRoot “C:\fujihara\Apache Software Foundation\Apache2.2\htdocs” ServerName localhost LoadModule dav_module modules/mod_dav.so LoadModule dav_fs_module modules/mod_dav_fs.so <directory c:\fujihara\apache=”" software=”" foundation\apache2.2\htdocs\maven2=”"> Options Indexes FollowSymlinks order Allow,Deny Allow from all </directory> DAVLockDB “C:\fujihara\Apache Software Foundation\Apache2.2\dav\DAVLock” <location maven2=”"> Dav on DavMinTimeout 600 </location> </virtualhost>
WebDAVの設定も簡単。これで、http経由で、ファイルをプットしたりできる。
あとは、DAVLockファイルの置き場所や、htdocsにmaven2のディレクトリを作っておく。
Apacheを起動して、「http://localhost:50000/maven2/」にアクセスすると、Parent Directoryだけ表示されるはず。
これでリポジトリ作成は終わり。
注意点は、Linuxで作ったときに、htdocs/maven2の権限を、Apacheの実行ユーザが書き込みできるようにしていないと、ディレクトリが作れないと怒られた。
Maven2からデプロイしてみる
pom.xmlに以下を記述。
<?xml version=”1.0″ encoding=”UTF-8″?> <project> ・・・ <distributionManagement> <repository> <uniqueVersion>true</uniqueVersion> <id>localhost.maven2</id> <name>Local Repository</name> <url>dav:http://localhost:50000/maven2 </url> </repository> <snapshotRepository> <uniqueVersion>true</uniqueVersion> <id>localhost.maven2</id> <name>Local Snapshot Repository</name> <url>dav:http://localhost:50000/maven2/snapshot </url> </snapshotRepository> </distributionManagement> ・・・ <build> <extensions> <extension> <groupId>org.apache.maven.wagon</groupId> <artifactId>wagon-webdav</artifactId> <version>1.0-beta-2</version> [...]
ローカルPCに建てたリポジトリにデプロイしようとすると以下のエラーが出た。
[INFO] Retrieving previous build number from localhost.maven2 WAGON_VERSION: 1.0-beta-2 Downloading [localhost.maven2] -> http://localhost:50000/maven2//maven2sample/maven2sample/0.0.1-SNAPSHOT/maven2sample-0.0.1-20090620.084158-1.jar .org.apache.maven.plugin.MojoExecutionException: Error deploying artifact: Failed to transfer file: http://localhost:50000/maven2/maven2sample/maven2sample/0.0.1-SNAPSHOT/maven2sample-0.0.1-20090620.084158-1.jar. Return code is: 500 Internal Server Error at org.apache.maven.plugin.deploy.DeployMojo.execute(DeployMojo.java:195) at org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:578) at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(DefaultLifecycleExecutor.java:508) at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleExecutor.java:328) at org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:151) at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:220) at org.apache.maven.embedder.MavenEmbedder.execute(MavenEmbedder.java:813) at org.maven.ide.eclipse.embedder.Maven2Executor.main(Maven2Executor.java:85) Caused by: org.apache.maven.artifact.deployer.ArtifactDeploymentException: Error deploying artifact: Failed to transfer file: http://localhost:50000/maven2/maven2sample/maven2sample/0.0.1-SNAPSHOT/maven2sample-0.0.1-20090620.084158-1.jar. Return code is: 500 Internal Server Error at org.apache.maven.artifact.deployer.DefaultArtifactDeployer.deploy(DefaultArtifactDeployer.java:115) at org.apache.maven.plugin.deploy.DeployMojo.execute(DeployMojo.java:173) … 7 more Caused by: org.apache.maven.wagon.TransferFailedException: Failed to transfer file: http://localhost:50000/maven2/maven2sample/maven2sample/0.0.1-SNAPSHOT/maven2sample-0.0.1-20090620.084158-1.jar. Return code is: 500 Internal Server Error at org.apache.maven.wagon.providers.webdav.WebDavWagon.put(WebDavWagon.java:311) at org.apache.maven.artifact.manager.DefaultWagonManager.putRemoteFile(DefaultWagonManager.java:222) at org.apache.maven.artifact.manager.DefaultWagonManager.putArtifact(DefaultWagonManager.java:150) at org.apache.maven.artifact.deployer.DefaultArtifactDeployer.deploy(DefaultArtifactDeployer.java:103) … 8 more
Apacheが500エラーを返しているらしい。
Aapcheのログをみると、
[Sat Jun 20 18:12:03 2009] [error] [client 127.0.0.1] File does [...]
Maven2で、ローカルに立てたインハウスリポジトリにデプロイしようとしたら、以下のエラーが出た。
[WARN] repository metadata for: ‘snapshot maven2sample:maven2sample:0.0.1-SNAPSHOT’ could not be retrieved from repository: localhost.maven2 due to an error: Unsupported Protocol: ‘dav’: Cannot find wagon which supports the requested protocol: dav [INFO] Repository ‘localhost.maven2′ will be blacklisted org.apache.maven.plugin.MojoExecutionException: Error deploying artifact: Unsupported Protocol: ‘dav’: Cannot find wagon which supports the requested protocol: dav at org.apache.maven.plugin.deploy.DeployMojo.execute(DeployMojo.java:195) at org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:578) at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(DefaultLifecycleExecutor.java:508) at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleExecutor.java:328) at org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:151) at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:220) at org.apache.maven.embedder.MavenEmbedder.execute(MavenEmbedder.java:813) at org.maven.ide.eclipse.embedder.Maven2Executor.main(Maven2Executor.java:85) Caused by: org.apache.maven.artifact.deployer.ArtifactDeploymentException: Error deploying artifact: Unsupported Protocol: ‘dav’: Cannot find wagon which supports the requested protocol: dav at org.apache.maven.artifact.deployer.DefaultArtifactDeployer.deploy(DefaultArtifactDeployer.java:115) at org.apache.maven.plugin.deploy.DeployMojo.execute(DeployMojo.java:173) … 7 more Caused by: org.apache.maven.wagon.TransferFailedException: Unsupported Protocol: ‘dav’: Cannot find wagon which supports the requested protocol: dav at org.apache.maven.artifact.manager.DefaultWagonManager.putRemoteFile(DefaultWagonManager.java:181) [...]
Maven2で「[ERROR] Invalid user settings」
Windows + Eclipse + m2eclipseでMaven2を使うと、以下のようなエラーが出る。
[ERROR] Invalid user settings C:\Users\藤原さん\.m2\settings.xml
Mavenが使う設定ファイルがないからなんだけど、Errorっていうのがきもちわるいので、上のパスにsettings.xmlを作る。
しかし、ファイルを作るだけではだめで、以下を記述する必要もあるらしい。
<?xml version=”1.0″ encoding=”UTF-8″?> <settings> </settings>
ビルドしてみると以下の警告がちょろちょろ出る。
[WARN] Using platform encoding (UTF-8 actually) to copy filtered resources, i.e. build is platform dependent!
調べてみると、One Stop Info Linkさんに解決策があった。
どうも、Maven2が使うソースのエンコーディングを指定してあげれば消える。
<project> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> </project>
Apache Continuum 1.2.3をインストール
Apache Continuumは、Mavenのサブプロジェクトからはじまり、2008年春ぐらいにApache Foundationのトップレベルプロジェクトになったらしい。
2009/05/29に1.3.3(Beta)が出ているので、まだHotな感じがするプロジェクト。まずはインストールから。
インストール
ヌーラボさんの「Maven2 ベストプラクティス 継続的インテグレーション」を参考書に。
ダウンロードサイトから1.2.3をダウンロード。
あとは、Maven2.1.0をダウンロード。
両方とも「C:\fujihara\continuum」に解凍する。
動かしてみますか
ContinuumにはJettyっていうサーブレットコンテナが入っているので、GlassFishとかのAPサーバはとりあえずいらない。
起動コマンドらしき「bin/continuum.bat」をたたいてみる。
c:\fujihara\continuum\apache-continuum-1.2.3>C:\fujihara\continuum\apache-continuum-1.2.3\bin\continuum.bat start ‘findstr’ は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。 Usage: C:\fujihara\continuum\apache-continuum-1.2.3\bin\continuum.bat { console : start : pause : resume : stop : restar : install : remove } 続行するには何かキーを押してください . . .
Vistaめ・・・。Debianでは「./bin/continuum start」でよかったんだけど、Vistaじゃうごかないなー。
バッチファイルを見ると、環境別に「bin/wrapper-windows-x86-32.exe」をよんでいるはずだけみたいなので、直にCallしてみる。
c:\fujihara\continuum\apache-continuum-1.2.3>C:\fujihara\continuum\apache-continuum-1.2.3\bin\wrapper-windows-x86-32.exe -t C:\fujihara\continuum\apache-continuum-1.2.3\conf\wrapper.conf wrapper | OpenSCManager failed – アクセスが拒否されました。 (0×5)
アクセスできないみたい。
Vistaって何かやるたびに「大丈夫?」って聞かれるので、start.batを作って右クリック>管理者として実行してみるが、「サービスがインストールされてませんけど?」って怒られる。
サービスに入れるしかないので、以下を実行。
C:\Windows\system32>C:\fujihara\continuum\apache-continuum-1.2.3\bin\wrapper-windows-x86-32.exe -i C:\fujihara\continuum\apache-continuum-1.2.3\conf\wrapper.conf wrapper | Apache Continuum installed.
管理ツール>サービスにも出てきた。(削除は-rらしい)
ここでもう一度、管理者として実行してみると動いた。
C:\Windows\system32>C:\fujihara\continuum\apache-continuum-1.2.3\bin\wrapper-windows-x86-32.exe -t C:\fujihara\continuum\apache-continuum-1.2.3\conf\wrapper.conf wrapper | Starting the Apache Continuum service… wrapper | Waiting to start… wrapper | Apache Continuum started.
初期設定
「http://localhost:8080/continuum」にアクセスすると、管理ユーザ登録画面になる。
継続的インテグレーションツールを調べてみようかと
エクストリームプログラミング(XP:eXtreme Programming)の一つである継続的インテグレーション(CI:Continuous Integration)が最近、気になっている。
継続的インテグレーションとは、テスト部分も含めて「全てが自動化された」「再現可能な」ビルドを、「日に何度も」行うこと。このプロセスを用いれば、開発者はインテグレーションを毎日行うことになるので、インテグレーションに伴う問題を減らすことができる。 (オブジェクト倶楽部 継続的インテグレーションより)
というのも、会社内の開発標準化作業を進めなければならず、「デイリービルドとかに苦労したくないよな」とおもったが最後、継続的インテグレーションにいきついた。
しかし、死にかけのITスキル10選にも名前を連ねるXP。書いた人があとで「ごめん、いいすぎた」っていってるけど、流行らないなー。日本は「徹夜した人すごい」みたいな人が、まだたくさんいるから、流行らないのかもしれない。
でもでも、ソース管理と簡易サーバだけで、自動ビルド、自動ドキュメント作成・・・などの恩恵がいただけるCI。自動化最高!であることは事実なので、とりあえず使い倒してみる。
万人のためのオートメーション: 継続的インテグレーション・サーバーの選択をみると、Continuum、CruiseControl、Luntbuildといった、CI製品たちの比較が分かりやすく書いているのですが、その中でも、ApacheのトッププロジェクトになっているContinuum(こんてぃにゅーむ?)をまずチェックかな。そのあとは、同僚から聞いたHudson。
継続的インテグレーションのためのツールたち
ちょっとずつになるかもしれないけど、以下をチェック予定。
Apache2.2.9+PHP5.2.6+MySQL5.0.67をWindowsVistaにインストール
VistaはProgram Filesをかなり厳しく見ているので、「httpd.confがいじれない!」とかなってしまった。そこで「c:\fujihara」フォルダを作り、そこにアプリをインストールして対応。自宅用だからこれでいっか。
MySQL管理用に「phpMyAdmin-2.11.9.2」もインストール。MySQLの管理はLinuxでも使う可能性があるのでphpMyAdminを使ってみる。
The Apache HTTP Server Project PHP MySQL The phpMyAdmin Project インストール
Apacheはインストールするときに「Custom」とかを選んで、インストールフォルダを「c:\fujihara」に指定。勉強用なのですべてのモジュールをつっこんでおくといいかも。
httpd.confの239行目あたりにあるDirectoryIndexにindex.phpを追加。
<IfModule dir_module> DirectoryIndex index.html index.php </IfModule>
MySQLもインストールフォルダを「c:\fujihara」にして、インストール後にDBの設定ウィザードが開くので、「Best Support for Multilingualism」を選んだ。
PHPではApache2.xモジュールを選択してインストール。その他インストールするアイテムとして以下が必要。どれもphpMyAdminでつかってるらしい。
Extensions/MySQL Extentions/Mcrypt Extensions/Multi-Byte String Extensions/zip
勉強用なので全部突っ込んどくか。
インストール後にmbstringの設定をphp.iniにした。
mbstring.language = Japanese mbstring.internal_encoding = UTF-8 mbstring.http_input = auto mbstring.http_output = UTF-8 mbstring.encoding_translation = On mbstring.detect_order = auto mbstring.substitute_character = none; phpMyAdmin
phpMyAdminのconfig.sample.inc.phpをconfig.inc.phpにリネームする。ファイルを開くと
$cfg['blowfish_secret'] = ‘fujihara’; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */
というのがあるはずなので、「fujihara」のように値を設定してあげる。
あとはhtdocsに「phpmyadmin」フォルダとか作ってファイルをそこにおいてあげるだけ。ブラウザからアクセスするとログイン画面が表示される。
なんだかよくわからんけど、MySQLで設定したroot/passではいれた。
httpd.exe: Could not reliably determine the server’s fully qualified domain name
使い始めて、突然Apacheが停止した。PHPも動作しなくなり真っ白なページが表示される。
イベントビューアを見るとエラーが出まくっていて、
httpd.exe: Could not reliably determine the server’s fully qualified domain name, using [...]
僕について
Dai Fujihara
A hero can be anyone.
藤原大はマネージャでありアジャイル実践者だ。そして、プロジェクトリーダー、チェンジ・エージェント、アジャイルコーチ、トレーナーでもある。彼はまたRedmine、Jenkinsといった開発を支援するツール環境の整備や、アジャイル開発を活用した創造的なソフトウェア開発の支援を行っている。さらに、趣味は沖縄離島巡りらしい。
ここ最近の人気
開発ツールを使うと「思いやり」が減る(前半) #swat… 1,000 view(s)
3年使ったRedmineの使い方について共有したい10の… 510 view(s)
開発ツールを使うと「思いやり」が減る(後半) #swat… 472 view(s)
チームとタワーを創造せよ!マシュマロチャレンジでチームビ… 314 view(s)
Javaで入力チェックに使える正規表現まとめ… 233 view(s)
Redmineプラグイン開発 – 史上最高のチームプラグ… 162 view(s)
LinkStationのようなNASを買ってもバックアッ… 129 view(s)
社会人10年目をなんとか乗り越えたからエールを贈る… 124 view(s)
Redmineプラグイン開発 – パーキングロットチャー… 112 view(s)
DAOとかDTOとかVOとかEntityとか… 93 view(s)
永久保存の本
Jonathan Rasmusson (著), 西村 直人 (翻訳), 角谷 信太郎 (翻訳)
アジャイルサムライ―それはソフトウェアを顧客に届ける猛々しきプロフェッショナルだ。本書では、圧倒的なアジャイルプロジェクトの姿を見せる。2011年爆発的にヒットしたアジャイル開発に情熱を持つエンジニアに届けたい本。
Mike Cohn (著), マイク コーン (著), 安井 力 (翻訳), 角谷 信太郎 (翻訳)
採用した現在のタイトルは、見積りや計画づくりといったプロセスを、アジャイルに進めなければならないと謳っているのだ。見積りと計画づくりがアジャイルでないのに、プロジェクトがアジャイルであるということはありえない。(イントロダクションより)
Venkat Subramaniam (著), Andy Hunt (著), 木下 史彦 (監訳), 角谷 信太郎 (監訳)
アジャイルな習慣とは一体何なのか?本書ではプラクティスを交えながら、その姿勢を読者に問いかけている。世代や役割をこえて色褪せない「アジャイル」に対する良書。Amazonレビュー
メアリー・ポッペンディーク (著), トム・ポッペンディーク (著), 高嶋 優子 (翻訳), 天野 勝 (翻訳), 平鍋 健児 (翻訳)
「トヨタ生産方式」を源流にする「リーン開発」をソフトウエア開発に取り入れるための具体的方法を紹介した本です。本書は、リーンの7大原則を「価値」「ムダ」「スピード」「人」「知識」「品質」「パートナー」に整理し、ソフト開発現場にどうしたら効果的に適用できるかを、多くの実例を交えながら具体的に説明します。
タグ
Agile ant Apache bash Eclipse GlassFish install Java Javascript kobo Linux log4j Management Maven Open Source PHP Pukiwiki Python Redmine Ruby Ruby on Rails Scrum Spring Struts Struts2 Subversion Test Tomcat Trac VBA Web WebDriver WebLogic Windows WordPress 働く 勉強会 嫁(ベータ) 思い出し笑う 我思う 旅する 映画/ドラマ 英語を話す 読むと聞く 過去を語るアーカイブ









