プログラミングの課題にて、Nettyを使ってみようとおもうんだが、Nettyビルドに失敗する→Javaのパッケージに躓く

POSAコースではJavaC++11、RubyPythonなど好きな言語を選べるようになっていて、なかにJava+Nettyというのがあった。Nettyってなにかのフレームワークっぽいのんで使ってみよう。


Nettyを展開すると、pom.xmlというのがあったので、mvn package してみる。しかし当然のように失敗する。大体いつもどっかでハマるんだよな、、、

$ mvn package
[INFO] Scanning for projects...
Downloading: http://repo.maven.apache.org/maven2/org/apache/felix/maven-bundle-plugin/2.3.4/maven-bundle-plugin-2.3.4.pom
Downloaded: http://repo.maven.apache.org/maven2/org/apache/felix/maven-bundle-plugin/2.3.4/maven-bundle-plugin-2.3.4.pom (5 KB at 2.0 KB/sec)
Downloading: http://repo.maven.apache.org/maven2/org/apache/felix/felix-parent/1.2.1/felix-parent-1.2.1.pom
Downloaded: http://repo.maven.apache.org/maven2/org/apache/felix/felix-parent/1.2.1/felix-parent-1.2.1.pom (14 KB at 11.
 :
 :
 :
C:\Users\(MY_NAME)\Desktop\dev\Java\netty-3.6.5\src\main\java\org\jboss\netty\util\TimerTask.java:0: invalid newline character (expected: CRLF)
C:\Users\(MY_NAME)\Desktop\dev\Java\netty-3.6.5\src\main\java\org\jboss\netty\util\TimerTask.java:0: ファイルが新しい行で
終了していません。
C:\Users\(MY_NAME)\Desktop\dev\Java\netty-3.6.5\src\main\java\org\jboss\netty\util\VirtualExecutorService.java:0: invalid
newline character (expected: CRLF)
C:\Users\(MY_NAME)\Desktop\dev\Java\netty-3.6.5\src\main\java\org\jboss\netty\util\VirtualExecutorService.java:0: ファイルが新しい行で終了していません。
Audit done.

[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 3:26.372s
[INFO] Finished at: Thu Apr 18 05:40:36 JST 2013
[INFO] Final Memory: 18M/182M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-checkstyle-plugin:2.9.1:check (check-style) on project netty: Failed during checkstyle execution: There are 1326 checkstyle errors. -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException

うーん、よくわからないが、改行コードが変らしい、、、ダウンロードしてきたモノを展開するとjarファイルが入ってるから、ビルドする必要はないのかな?


さて、NettyのサンプルにあるEchoClient/Serverをコンパイルをしてみた。CLASSPATHにはくだんのjarファイルを入れておく。

javac EchoServer.java EchoServerHandler.java
javac EchoClient.java EchoClientHandler.java

うむ、うまくいく。では実行。

$ java EchoClient
Exception in thread "main" java.lang.NoClassDefFoundError: EchoClient (wrong name: org/jboss/netty/example/echo/EchoClient)
        at java.lang.ClassLoader.defineClass1(Native Method)
        at java.lang.ClassLoader.defineClass(Unknown Source)
        at java.security.SecureClassLoader.defineClass(Unknown Source)
        at java.net.URLClassLoader.defineClass(Unknown Source)
        at java.net.URLClassLoader.access$100(Unknown Source)
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at sun.launcher.LauncherHelper.checkAndLoadMain(Unknown Source)

Javaのパッケージってムカツクなあ、、、これらを深いディレクトリにいれて、jarにまとめてmanifestやらを入れる、みたいな意味の分からないことをするのは非生産的だなあ、と思うのは僕だけでしょうか。自動補完やら何やらで大層重たいEclipseを素直につかうべきなのでしょうか。