LoginSignup
4
2

More than 5 years have passed since last update.

Mavenでwarファイルを生成すると不要なJarファイルが入るのはmaven-war-pluginの古いバグ

Last updated at Posted at 2018-05-16

事象

mvnコマンドにてwarファイルを生成すると、WEB-INF/libの中に同じ内容のJarが2つ入ってしまう。

WEB-INF/lib
slim3-1.0.18-20180504.201437-1.jar
slim3-1.0.18-SNAPSHOT.jar

POMはこう。

pom.xml
<repositories>
    <repository>
        <id>slim3-repo</id>
        <url>http://slim3.github.com/slim3/</url>
        </repository>
</repositories>

<dependencies>
    <dependency>
        <groupId>org.slim3</groupId>
        <artifactId>slim3</artifactId>
        <version>1.0.18-SNAPSHOT</version>
    </dependency>
</dependencies>

Jarの取得元はココ。
https://github.com/Slim3/slim3/tree/gh-pages/org/slim3/slim3
バージョンは 1.0.18-SNAPSHOT。
1.0.18-SNAPSHOT フォルダの maven-metadata.xml を見てみると versioning に 20180504.201437-1 が登場している。

期待結果

dependencyで指定したバージョンのJarファイルのみが含まれてほしい。

WEB-INF/lib
slim3-1.0.18-SNAPSHOT.jar

問題だった箇所

maven-war-pluginのバージョンを指定せずに使っていた。ログを見たところバージョン2.2が使われていた。

pom.xml
<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-war-plugin</artifactId>
</plugin>

バージョンを変えて試したところ、2.4以降を指定すると期待結果になった。

解決方法

maven-war-pluginをバージョン指定して使う。バージョンは 2.4 以降を指定する。
なお投稿時点での最新バージョンは 3.2.1 。

pom.xml
<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-war-plugin</artifactId>
    <version>2.4</version>
</plugin>

参考

issue
maven-war-plugin can cause multiple dependent lib files with same snapshot version.

4
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
2