menu
書いてる野郎
orebike@gmail.com
つまり・・・
っていう人向け
つまり単にローカルにあるファイルをクラスパス通すところにコピーしますよということ。
pom.xmlにこう書く。
<dependency> <groupId>hoge</groupId> <artifactId>piyo</artifactId> <version>1.0</version> <scope>system</scope> <systemPath>${basedir}/lib/piyo-1.0.jar</systemPath> </dependency>
basedirを指定することによりローカルファイルシステムの依存性を一応排除している。
ちなみに
${basedir}
というのはpomのファイルがあるディレクトリのフルパスを表す
しかしこれではpackageの際には含まれんのだよね〜
eclipseで開発している分にはいいがmaven全体での統合管理としては問題があるっぽい。
なんだかこれとdependencyプラグインでできるみたいに書いてあったサイトがあったが俺はこのやり方断念。 どんなに頑張ってもpackageで作ったwarにsystemPathで突っ込んだjarが含まれない
ということでプロジェクト内にリポジトリを作ってしまう。
プロジェクトhogehoge
のcom.piyo
というグループで依存性解決したい(単純のとってきたい)artifactがfuga
、
そのバージョンが0.2.0
だったとすると
のように配置する。sha1は検証のためのファイルだが自分がやったときは既存にあったものを引っ張ってきたので生成に関しては別の機会に
そしてpom.xmlでこいつがリポジトリなんだよということを教える
<project> ... <repositories> <repository> <id>projectinner</id> <url>file:${basedir}/repo</url> </repository> </repositories ... </project>
あとは普通にdependencyで該当のgroupIdとartifactIdを書けば勝手にローカルリポジトリにダウンロードインストールしてくれる
packageでwarを作った場合もコピーされる。