Page History

Maven_release

hayashi edited this page on 5 May

Clone this wiki locally

Maven release

設定

  • "pom.xml"
    <!-- https://mvnrepository.com/artifact/org.apache.maven.plugins/maven-release-plugin -->
    <dependency>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-release-plugin</artifactId>
      <version>2.5.3</version>
      <type>jar</type>
    </dependency>

      <!-- mvn release:prepare -->
      <!-- mvn release:perform -Dmaven.javadoc.skip -->
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-release-plugin</artifactId>
        <version>2.5.3</version>
        <configuration>
          <releaseProfiles>install</releaseProfiles>
          <tagNameFormat>v@{project.version}</tagNameFormat>
        </configuration>
      </plugin>

mvn release:prepare 準備

  • git push
  • (1) release.propertiesを削除

  • (2) versionに-SNAPSHOTをつける

      <version>5.3.10-SNAPSHOT</version>

release:prepare の実行

$ mvn release:prepare

:
[INFO] Checking dependencies and plugins for snapshots ...
What is the release version for "hayashilib"? (haya4.tools:hayashilib) 0.0.3: :
  • リリースするバージョン 0.0.3
  • 何もしないでENTERすると、表示されているバージョンでリリースされる 0.0.3
What is SCM release tag or label for "AdjustTime"? (osm.surveyor:AdjustTime) v5.3.10: : 

What is the new development version for "AdjustTime"? (osm.surveyor:AdjustTime) 5.3.11-SNAPSHOT: :

:

  • compile,test,installが実行される

  • ビルドに成功すると、github へのユーザー名とパスワードを何度か聞かれる

Username for 'https://github.com': yuuhayashi
Password for 'https://yuuhayashi@github.com':  ********

Username for 'https://github.com': yuuhayashi
Password for 'https://yuuhayashi@github.com':  ********

release:perform の実行

(1) 実行。 Javadocをスキップして実行する。

mvn release:perform -Dmaven.javadoc.skip

:
[INFO] Cleaning up after release...
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  03:42 min
[INFO] Finished at: 2020-12-08T05:51:48+09:00
[INFO] ------------------------------------------------------------------------

(約5分以上かかる)

  • ビルドに成功すれば完了(約5分以上かかる)
  • archivaにartifactが作成されていることを確認する

release:perform の確認

  • archivaにartifactが作成されていることを確認する

  • pom.xmlのバージョンが次の開発バージョンに自動的に変更される

  <version>5.3.11-SNAPSHOT</version>
  <scm>
    <connection>scm:git:http://surveyor.mydns.jp/gitbucket/git/yuu/AdjustTime.git</connection>
    <url>http://surveyor.mydns.jp/gitbucket/yuu/AdjustTime/wiki</url>
    <developerConnection>scm:git:http://surveyor.mydns.jp/gitbucket/git/yuu/AdjustTime.git</developerConnection>
    <tag>v5.3.10</tag>
  </scm>

補足

「-jar-with-dependencies.jar」のデプロイ方法

  • サイスが大きい成果物は、archivaへのアップロードの際にエラーが発生する
[INFO] Uploading to surveyor.haya4: http://surveyor.mydns.jp/archiva/repository/haya4/osm/surveyor/movie2jpg/Movie2jpg/2.0.0/Movie2jpg-2.0.0-jar-with-dependencies.jar
[INFO] [INFO] ------------------------------------------------------------------------
[INFO] [INFO] BUILD FAILURE
[INFO] [INFO] ------------------------------------------------------------------------
[INFO] [INFO] Total time:  33.228 s
[INFO] [INFO] Finished at: 2021-03-28T13:24:05+09:00
[INFO] [INFO] ------------------------------------------------------------------------
[INFO] [WARNING] The requested profile "install" could not be activated because it does not exist.
[INFO] [ERROR] Failed to execute goal org.apache.maven.plugins:maven-deploy-plugin:2.7:deploy (default-deploy) on project Movie2jpg: Failed to deploy artifacts: 
Could not transfer artifact osm.surveyor.movie2jpg:Movie2jpg:jar:jar-with-dependencies:2.0.0 from/to surveyor.haya4 (http://surveyor.mydns.jp/archiva/repository/haya4/): 
Failed to transfer file: http://surveyor.mydns.jp/archiva/repository/haya4/osm/surveyor/movie2jpg/Movie2jpg/2.0.0/Movie2jpg-2.0.0-jar-with-dependencies.jar. 
Return code is: 413, ReasonPhrase: Request Entity Too Large. -> [Help 1]
  • この場合、
    • (1) 一旦、このエラーを発生させてから、
    • (2) 手動でArchivaのWebUI画面から,「article upload」で「Movie2jpg-2.0.0-jar-with-dependencies.jar」実行させて、もう一度、エラーを発生させる。
    • (3) その後、「scp」コマンドでArchivaサーバにJARファイルをファイル転送する
$ scp ./Movie2jpg-2.0.0-jar-with-dependencies.jar pi@raspi2:~/

$ ssh pi@raspi2

$ cd /opt/archiva/repositories/repositories/haya4/osm/surveyor/movie2jpg/Movie2jpg/2.0.0

$ sudo mv ~/Movie2jpg-2.0.0-jar-with-dependencies.jar .

$ sudo chown archiva:archiva *.jar
  • ArchivaのGUIから、「Repositories」->[Managed Repositories] -> "Actions"[Index Scaning] を実行する