複数の.jarファイルを含むプロジェクトがあります。これを依存関係として追加するには、これらのすべてのjarファイルを大きなjarファイルに変換する必要があります。これまでのところ、私はまで来ていますがなければならないので、これが最終的なjarファイルを作成しますMaven Pluginを使用して複数のjarファイルから.jarファイルを作成する方法
<?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>
<parent>
<groupId>mainProjects</groupId>
<artifactId>mainProjects.master</artifactId>
<relativePath>../pom.xml</relativePath>
<version>1.0.0-SNAPSHOT</version>
</parent>
<groupId>mainProjects</groupId>
<artifactId>sampleModule1</artifactId>
<name>sampleModule1</name>
<version>1.0.0.qualifier</version>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<artifactSet>
<includes>
<include>Sample1.jar</include>
<include>Sample2.jar</include>
</includes>
</artifactSet>
<finalName>${project.artifactId}-${project.version}-final</finalName>
<outputDirectory>${project.artifactId}/build</outputDirectory>
<shadedArtifactAttached>false</shadedArtifactAttached>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
、しかし、内部の他のjarファイル(sample1.jarとsample2.jar)からのコンテンツがありません。私はプラグインのドキュメントを調べましたが、彼らがしたのは、ジャーではなく、クラスファイルを使って行うことでした。だから私は今からどのように進むべきかわかりません。
どのような考えですか?
更新:
だから、ここに私は私が持っているプロジェクトの構造を共有、それを明確にするために:私は依存関係としてsampleModule1
を使用することができるようにしたい、
+- mainProjects
| +- pom.xml
| +- mainProject1
| | +- pom.xml
| | +- src
| +- mainProject2
| | +- pom.xml
| | +- src
| +- group1
| | +- pom.xml
| | +- sampleModule1
| | | +- pom.xml
| | | +- build
| | | +- sample1.jar
| | | +- sample2.jar
| | | +- sample3.jar
| | | +- sample4.jar
| | | +- sample5.jar
| | | +- sample6.jar
| | +- sampleModule2
| | | +- pom.xml
| | | +- src
を今すぐにトンを達成するために
<dependency>
<groupId>group1</groupId>
<artifactId>sampleModule1</artifactId>
<version>1.0.0.qualifier</version>
<scope>system</scope>
<systemPath>sampleModule1/build/${project.artifactId}-${project.version}-final.jar</systemPath>
</dependency>
:このようなjarファイル、などmainProject1
のpom.xml
で彼は、私は1つの瓶にすべての瓶をコンパイルする必要があるので、1つを使用して追加することができますsystemPath
。私はthisを見つけました。これは、複数のファイルを1つにまとめる方法の例を示しています。しかし、この例では、それらはjarではなく、クラスなどです。今ここで、私は同じものを達成しようとしていますが、ただの瓶しかありません。
プロジェクト構造は何ですか?これらのjarファイルはpom.xmlファイルの外にありますか? – Apostolos
思い出してくれてありがとう。それらはpom.xmlと同じディレクトリにあります。 –
なぜそれらをpom.xmlの依存関係として追加しませんか?それがメイヴンの意味です! – Apostolos