私はwarファイルをビルドするmavenプロジェクトを持っていますが、maven-jar-pluginを使って同じプロジェクトにjarファイルを作成しています。maven build with war and jar奇妙なアーティファクトを内部リポジトリにプッシュ
--DISCLAIMER-- これは「正しい」方法ではありませんが、これをjarプロジェクトといくつかのサードパーティーのプラグインと別の戦争プロジェクトに分割する際に発生するいくつかの問題があります。
これでいくつかの奇妙な動作が見られます。以下は私のプロジェクト構造です。私はこのプロジェクトをビルドするとき
warproject
-src
--main
---webapp
----WEB-INF
-----web.xml
---java
----com.test.myclass
-----test.java
-pom.xml
、しかし私は、私の地元の.m2レポでは、奇妙な問題が発生した何かを私のターゲットディレクトリ内の正しい戦争とjarファイルを取得します。インストールされているwarファイルの名前はwar-jar-0.0.1-SNAPSHOT.warと正しく指定されていますが、このファイルの内容はmy jarファイルの内容です。逆にすると、これも発生します。つまり、プロジェクトをセットアップしてmaven-war-pluginを使用してwarをビルドすると、ターゲットディレクトリ内のアーカイブは正しいものの、ローカルリポジトリにwarファイルの内容が入ったjarファイルがあります。以下は私が使用しているpomファイルです。
<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/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.test</groupId>
<artifactId>war-jar</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>war</packaging>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<jarName>${project.artifactId}-${project.version}-client</jarName>
</configuration>
<executions>
<execution>
<id>make-a-jar</id>
<phase>package</phase>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
<resources>
<resource>
<directory>src/main/java</directory>
</resource>
<resource>
<directory>src/main/resources</directory>
</resource>
</resources>
</build>
</project>
コンソールの出力は次のとおりです。これは、jarが戦争としてアップロードされていることを示しています。
Installing /home/me/work/src/war-jar/target/war-jar-0.0.1-SNAPSHOT.jar to /home/me/.m2/repository/com/test/war-jar/0.0.1-SNAPSHOT/war-jar-0.0.1-SNAPSHOT.war
--update 私はこの作業を得たが、私は、パッケージからインストールするために、私の「メイクジャー」実行の位相を変更する必要がありました。これはうまく動作し、正しい成果物がアップロードされますが、なぜこれが違いになるのか混乱しています。当然のことながら、アーティファクトは異なるライフサイクルフェーズで生成されるため、プロジェクトの元のインストール時に周辺には存在しないため、間違ったファイルはアップロードされません。これは「ハック」のように思えますが、なぜこれがこのように動作しているのか理解したいと思います。
jar/warをビルドするために使用するコマンドは何ですか? mvnをインストールしますか? –
はいmvnはプロジェクトにインストールします。 – broschb