rch850 の上澄み

技術的な話題とか、雑談とか。タイトルを上澄みに変えました @ 2020/09/02

Maven 3 で SCP で deploy-file するのが面倒

既存の jar をリモートの Maven リポジトリにつっこむときには deploy:deploy-file を使います(Maven - Guide to deploying 3rd party JARs to remote repository)。引数の url でリモートリポジトリの URL を指定するのですが、SCP などを使った場合の Maven 2 から Maven 3 で変わってしまったようです。その一例がこちら

挙動が変わったと言いましたが、具体的にどうなったかというと、デプロイできなくなってしまいました。解決策として wagon-scp を POM に書き足せと言われているのですが、今やりたいのは POM を書かずに deploy-file でデプロイすることなので、答になってません。これはスレッドの最後にも書かれてます。

じゃぁどうするか、というと、仕方なく POM を書いて、deploy-file で -DpomFile を指定するしかなさそうです。

<?xml version="1.0"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>hoge.fuga</groupId>
  <artifactId>piyo</artifactId>
  <version>1.0.0</version>
  <build>
    <extensions>
      <extension>
        <groupId>org.apache.maven.wagon</groupId>
        <artifactId>wagon-ssh</artifactId>
        <version>1.0-beta-6</version>
      </extension>
    </extensions>  
  </build>
</project>

デプロイする POM にこの build がくっついちゃうのがとても気持ち悪いんだけど、なんとかなるといいなぁ。