RMIサーバとクライアント問題解決(か?)

昨日一日色々と、本当に色々と試してやっとこ落ち着いた。結局マルチプロジェクトはやめやめ。サーバ開発はクライアントをなるたけ意識しないようにしたいのに、m2pluginが依存関係解決してくれなかったり、どうも振り回されすぎのような気がして。

サーバ側

Eclipseでm2plugin使って開発。ソースフォルダを以下の様にした。

- src +- common - java (DtoやServiceなどクライアント側でも使うものを置く)
      |
      +- main -+- java
      |        |
      |        +- resources
      | 
      +- test(以下略)

Eclipse上でソースフォルダを増やすのは簡単なんだけど、Mavenでのビルドではて困った。と思ったら、build-helperプラグインなるものがあるらしいじゃないですか。

<build>  
    <plugins>
        <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>build-helper-maven-plugin</artifactId>
            <executions>
                <execution>
                    <id>add-source</id>
                    <phase>generate-sources</phase>
                    <goals>
                        <goal>add-source</goal>
                    </goals>
                    <configuration>
                        <sources>
                            <source>src/common/java</source>
                        </sources>
                    </configuration>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

これで一件落着。

クライアント側

NetBeansプロジェクトとして、別個に作る。

で結局、上のsrc/common以下の必要なパッケージをsvn:externalsで持ってくるようにしました。今度は別ディレクトリになってるのでimplは落ちてこないど。

NetBeans上でライブラリとしてプロジェクト参照しようとしたりもしたんだけど、クライアントだけ開発したいのにサーバのプロジェクト作らなきゃいけなかったり、サーバ側プロジェクトにNetBeansの設定ファイルやら参照用のjarやら出来ちゃったり気持ち悪いので。

svn:externalsは、tagsとか作った時にちょっと管理にひと手間ありそうだけど(まだ試してない)、まあきちんと管理すりゃいいんだし、何せこれが一番シンプル。

いやー疲れた〜。