目的:他のpomのmvnコンパイル時に実行可能なmaven shadeプラグインで実行可能なuber jarを作成します。mvn process-resourcesはシェードプラグインで作成されたuber jarをプルダウンしません
再現手順:
- がポンポンの下に使用して、 "出版社" のコンポーネントのためのpom.xmlを作成します。
- MVN消費者に
をコンパイル
実際の消費/対象ディレクトリのどこかにダウンロードされますOTは、消費者のディレクトリに表示され
コンポーネント1:出版社
<?xml version="1.0" encoding="UTF-8"?>
<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.mec.experiment</groupId>
<artifactId>publisher</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>jar</packaging>
<dependencies>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>5.2.6.Final</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<archive>
<manifestFile>src/main/resources/META-INF/MANIFEST.mf</manifestFile>
</archive>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>2.3</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
コンポーネント2:消費者
<?xml version="1.0" encoding="UTF-8"?>
<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.mec.experiment</groupId>
<artifactId>consumer</artifactId>
<version>1.0-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>com.mec.experiment</groupId>
<artifactId>publisher</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
</dependencies>
パブリッシャーに分類子が指定されていますか?あなたは、消費者の依存関係に '出版社 'を使用しています。 –
Tunaki
ああ、以前の実験の痕跡。パブリッシャ : 消費者 <構成> 真 shadedArtifactAttached> 出版社 shadedClassifierName> 構成>:私はPOMS上記とを有する パブリッシャの両方と試みどちらの場合も同じ動作です。 コンシューマpomが内部整合性のために分類子を削除するように更新されました。 –
mcating
ここで "ターゲットディレクトリ"とはどういう意味ですか?なぜパブリッシャーを "どこかの消費者/ターゲットディレクトリ"にダウンロードする必要があるのか分かりません。 – Tunaki