java - 是否可以将项目导出为 jar 文件并将此 jar 导入其他项目以使用项目?
问题描述
我想创建基于模块的项目。并想创建spring项目并将它们导出为jar,然后在我的基础项目中导入该jar,这可能吗?
解决方案
由于您添加了标签maven
,我想您在项目中使用它。
如果你使用 Spring Boot
如果您构建 Spring Boot 应用程序,则默认情况下输出是一个 fat jar,并且不用于导入任何其他项目。
但是你也可以在你的 spring boot 模块中使用 repackage 插件来创建一个简单的 jar!
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<executable>true</executable>
</configuration>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
<configuration>
<classifier>boot</classifier>
</configuration>
</execution>
</executions>
</plugin>
在这种情况下,您将拥有
- A
projectname-0.0.1-SNAPSHOT-boot.jar
(boot
来自我在插件中定义的分类器,你可以选择任何其他名称)这是可运行的Spring Boot fat jar。 - A
projectname-0.0.1-SNAPSHOT.jar
可以导入到任何其他项目。
如果你不使用 Spring Boot
然后只需maven install
使用 maven 将您的项目添加到另一个模块的 pom.xml 中作为依赖项。
依赖的pom:
...
<groupId>com.your.group</groupId>
<artifactId>example-module</artifactId>
<packaging>jar</packaging>
<version>0.0.1-SNAPSHOT</version>
...
还有你依赖模块的 pom:
...
<dependencies>
...
<dependency>
<groupId>com.your.group</groupId>
<artifactId>example-module</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
...
</dependencies>
...
推荐阅读
- sqlite - 在 SQLite 中选择所有具有 MAX 值的行?
- python - amixer:无效的命令
- firebase - 为什么允许从客户端写入 Firebase 是可以的?
- c++ - TLE 尝试使用 Dinic 算法解决 SPOJ 上的 Fastflow
- angular - 向 Angular 应用程序添加国际化
- c# - C# 为字符串数组的每个项目设置特定的开始和结束位置
- fortran - 使用 gnu FFTW 3.3.8 计算具有复杂输入的一维 FFT
- jquery - 如何在jquery append中添加引号之一
- android - 用片段内的新菜单替换 BottomAppBar 菜单
- javascript - 将 Javascript 重构为类对象的问题