2013/06/21

続・Eclipse+Mavenのコンパイルエラー

後藤です。

前回書いたエラーについて、さらに調べてまた新しくわかったことがあるので今回はそのことについて書きます。

他のプロジェクトでは出ない

このプロジェクトで mvn clean package をしたときのみ例のエラーが出るようです。というより、このプロジェクトも確かとつぜんエラーが出るようになるまでは mvn clean package を使ってビルドを行なっていました。

色々と消えている

件のものとは他の mvn clean package を行なってもエラーが出ず動くプロジェクトで build しか行なっていないもの と、一度 mvn clean package を行ったあとに build を行ったもの の target フォルダをdiffした結果
$ diff 130614/target 130615/target
Common subdirectories: 130614/target/130614 and 130615/target/130614
Binary files 130614/target/130614.war and 130615/target/130614.war differ
Common subdirectories: 130614/target/classes and 130615/target/classes
Only in 130615/target: generated-sources
Only in 130614/target: jboss-as-dist
Only in 130614/target: m2e-wtp
Common subdirectories: 130614/target/maven-archiver and 130615/target/maven-archiver
Common subdirectories: 130614/target/surefire and 130615/target/surefire
Common subdirectories: 130614/target/test-classes and 130615/target/test-classes

件のエラーが出るプロジェクトでbuildしかおこなっていないもの と、一度mvn clean packageを行ったあとにbuildを行ったもの のtargetフォルダをdiffした結果
$ diff book/target book2/target
Only in book/target: book
Only in book/target: book.war
Common subdirectories: book/target/classes and book2/target/classes
Common subdirectories: book/target/generated-sources and book2/target/generated-sources
Only in book/target: m2e-wtp
Only in book/target: maven-archiver
Only in book/target: surefire
Only in book/target: surefire-reports
Only in book/target: test-classes

わかりにくいですが、太字がmvn clean packageをして減った部分で、下線が増えた部分です。他のエラーがなく動いているものももうひとつ同じように試してみましたが、やはり上の方のような結果になりました。
m2e-wtpは分からないのですが、通常mvn cleanをすると消えるファイルというのがmaven-archiverフォルダということになるのでしょうか。

残っているファイルを見ていてもあまり分からないので、エラーが出たbookと同じ内容のプロジェクトをもう一度はじめから作り直してみて、何が原因なのかとりあえず小さい単位でmvn clean packageを行うことで確かめてみることにしました。

・fieldを追加したBook.javaを作成
・Bookオブジェクトを操作するBookViewBean.javaを作成 
のあたりまでは普通に動いていたことを思い出しました(ただこの問題に対面したのがもう2週間前くらいなので記憶が薄れ始めています)

・arquillianでTestクラスを作成 してJUnit Testを行ったところ
org.jboss.arquillian.container.test.impl.client.deployment.ValidationException: DeploymentScenario contains a target (_DEFAULT_) not matching any defined Container in the registry.
Please include at least 1 Deployable Container on your Classpath.


というエラーが出て、色々試したもののこのエラーの原因がわからずTestクラスの利用を諦めて元に戻したところで、件のエラーが出るようになったのでした。

が、今回何もせずにTestクラスを削除しただけではエラーは出ませんでした。arquillianのことでエラーが出るので色々と設定を変更したりしたせいだったのかなと思うのですが、何をどういじったかは覚えておらず、そのときのエラーを再現することができませんでした。
arquillian、使いこなせれば便利なのかもしれませんが、英語のドキュメントばかりで難しいですね…。

この続きはまた来週、機会があれば。。


追記:targetフォルダを見ても意味ないのでは?という指摘を受けました。まずJBossだとかForgeのなんたるかを勉強する必要がありそうです。



.

0 件のコメント :

コメントを投稿