java - 如何将我的类打包在 .jar 中,并且仍然打包为 war ?

标签 java spring maven

所以我有一个使用 maven 在 IntelliJ 9 中构建的 spring mvc web 应用程序。

当我运行:

mvn clean install

它将所有内容打包在一个 .war 文件和一个 exploded war 中。

我的项目布局使用 Maven 简单 Web 应用架构类型。

How can I have my classes compiled into a .jar file also?

目前我的类(class)在:

/target/myapp/WEB-INF/classes/

我想要的是在 .jar 中编译我的代码,例如:

myapp-1.0.jar

我的 /target/myapp/WEB-INF/lib 文件夹中有这个,就像我所有其他的 jars 一样。

更新

我希望通过 maven 完成此操作,而不是特定于 intellij。

最佳答案

您可以轻松地创建两个 Artifact - 一个 JAR 和一个 WAR。

与 WEB-INF/classes 相比,我不确定将 .class 文件放在 JAR 中有什么优势。两者都被压缩; JAR 不会提供额外的压缩。您可能希望在其他应用程序中重新使用这些 .class 文件。如果是这种情况,您可能会考虑将这些 Java 类移动到一个单独的模块中并添加您创建的 JAR 文件,就像您在 WAR 文件中添加任何其他第 3 方 JAR 一样。其他应用程序可以轻松地从您的存储库中 check out JAR 文件并简单地重用它。这种安排最好通过将共享 Java 类移动到版本控制系统中的单独存储库中来完成。

关于java - 如何将我的类打包在 .jar 中,并且仍然打包为 war ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8962639/

相关文章:

java - GUI Java应用程序兼容Win7但不兼容Win10

java - JSON Jackson - 使用自定义序列化程序序列化多态类时出现异常

java - 如何在@Transactional注释方法中将状态提交到数据库?

java - 无法使用java通过脚本执行maven命令

maven - Powermock 和 JMockit 单元测试的测试覆盖率

java - C 和 C++ 中的 JNI 调用不同?

java - "$CP"在此 java 命令行中意味着什么?

java - Spring 无法处理名称为 'customerController' 的 bean

java - Spring Framework可以用于批处理应用吗?

java - 在maven编译期间跳过测试