- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 Java 控制台应用程序,到目前为止它是在 Netbeans IDE 中开发的。当 Netbeans 构建应用程序时,它会创建 dist
目录并将应用程序作为 jar 存档构建到该目录中,并将所有依赖项复制到 dist/lib
中。此目录可以复制到最终目标并运行。
现在我正在尝试将这个项目转移到 Maven 中。一切顺利,我可以编译和打包我的应用程序,并在 target
目录中创建一个 jar。我使用 maven-jar-plugin
在 list 中设置主类,并使用 maven-shade-plugin
将所有源打包到一个 jar 文件中。
想请问一下,这样的Maven项目在现实世界中是如何部署的?我是否应该使用所有 target
目录,将其复制到最终目标并像我以前使用 Netbeans 那样运行?当我不使用 maven-shade-plugin
时会有什么后果 - 所有定义为依赖项的库都位于何处?我在问,因为在我的测试项目中,这些库不存在于 target
目录中。
我的问题 - 我有一个通过 Maven(没有 maven-shade-plugin
)打包的 Java 控制台应用程序“A”和该应用程序应该运行的 Linux 服务器“S”。我可以手动将所有目标目录复制到服务器“S”还是有更好/更自动的方法如何在现实世界中解决这个问题?
最佳答案
简单地复制目标目录并不能解决您的问题。我已经使用 Maven 打包了许多独立的应用程序,并且我使用了 Maven Assembly Plugin为了它。您可以使用您的客户可以解压缩并开始运行的程序集插件来创建分发存档(zip、tar.gz)。
这取决于您,您希望您的目标应用程序目录结构(发布)如何。我通常以类似的方式结束
bin/
conf/
lib/
log/
bin
目录包含一个 shell/批处理脚本,通过调用您的主类、设置适当的类路径、提供相关的内存设置等来运行您的程序。我更喜欢使用 classworlds(Maven 使用)引导我的应用程序并简化启动脚本的编写。
conf
目录包含您的应用程序的配置文件以及日志记录配置文件,如 log4j 等。我将这个目录添加到类路径中,以便在运行时更容易访问配置资源。
lib
目录包含所有依赖项 jar 以及代码的 jar 文件。
log
是您的日志配置将指向输出日志文件的位置。
请注意,这种结构适用于像应用程序这样的独立服务器。还有一个 bin 目录和运行脚本允许您将此目录添加到 Windows/Linux 上的 PATH 以确保您可以从任何地方运行该应用程序。
如果您要打包命令行实用程序,简单的阴影 jar 可能适合您。就个人而言,我不是 java -jar application.jar
关于java - Maven 应用程序在现实世界中是如何部署的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19976468/
笙歌 痞性. 剩余 青怏 洒脱 现实 搁浅° 软萌 路途 娼妓 离骚 逐你 微尘 迷魂 ▼ 扎心 堇夏 残年っ ╭淡妆╮ 24K.纯疯 隐痛
我正在尝试不费吹灰之力地实现完全有效的持久性无知。不过我有很多问题: 最简单的选项 这真的很简单——可以像在 SOA 中那样使用 Spring Data 注释对实体进行注释(但让它们真正执行逻辑)?除
我想完成一项简单的任务。 我在可变宽度容器中有一个图像。 容器的宽度可以为 300、400、700 或 900 像素。这是通过媒体查询完成的图像应占据该容器的所有宽度。所以它也将是 300、400、7
我在使用 Storyboards AutoRotation 和 iPhone 时遇到问题。我已经将一个非常简单的项目与 3 个 View Controller 放在一起,并将其上传到 gitHub 以
我是一名优秀的程序员,十分优秀!