在 Maven 中创建 2 个 Jars(可移植和依赖)的最佳实践
Best practices when creating 2 Jars (Portable and Dependency) in Maven
我创建了一个小工具来签署 PDF。现在我想要 2 个 Jar,一个 Portable Jar,您可以在其中执行 Jar,仅此而已,还有一个 Jar 可以加载到其他项目中并使用。
我目前的做法:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>3.3.0</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
<configuration>
<finalName>BatchPDFSign</finalName>
<archive>
<manifest>
<mainClass>BatchPDFSign.Main</mainClass>
</manifest>
</archive>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
<appendAssemblyId>false</appendAssemblyId>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
</plugin>
</plugins>
</build>
如您所见,我的第一种方法是使用 maven-assembly-plugin 创建一个 Uber Jar,并使用 maven-compiler-plugin 创建一个普通 Jar。
但我并没有失去我完全错误的感觉,还有更好的方法来做到这一点。我对 Maven 很陌生。
tl;dr:创建一个包含所有依赖项的 Jar 和一个适合一次性上传到 maven 的 Jar 的最佳方法是什么?
通常,您会创建一个包含两个模块的多模块项目:
- 图书馆。
- 可执行 jar。
可执行 jar 将库用作依赖项,并向 运行 添加所需的内容(可能是 Main class 和一些配置)。
那么这个库也可以被其他人使用。
我创建了一个小工具来签署 PDF。现在我想要 2 个 Jar,一个 Portable Jar,您可以在其中执行 Jar,仅此而已,还有一个 Jar 可以加载到其他项目中并使用。
我目前的做法:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>3.3.0</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
<configuration>
<finalName>BatchPDFSign</finalName>
<archive>
<manifest>
<mainClass>BatchPDFSign.Main</mainClass>
</manifest>
</archive>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
<appendAssemblyId>false</appendAssemblyId>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
</plugin>
</plugins>
</build>
如您所见,我的第一种方法是使用 maven-assembly-plugin 创建一个 Uber Jar,并使用 maven-compiler-plugin 创建一个普通 Jar。
但我并没有失去我完全错误的感觉,还有更好的方法来做到这一点。我对 Maven 很陌生。
tl;dr:创建一个包含所有依赖项的 Jar 和一个适合一次性上传到 maven 的 Jar 的最佳方法是什么?
通常,您会创建一个包含两个模块的多模块项目:
- 图书馆。
- 可执行 jar。
可执行 jar 将库用作依赖项,并向 运行 添加所需的内容(可能是 Main class 和一些配置)。
那么这个库也可以被其他人使用。