- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我是 Maven 的新手,我正在使用名为 Entando 的产品开发门户网站(但我的问题不是关于 Entando,而是关于 Maven) .
因此,在文档中我找到了关于 Maven 的声明:
Maven takes care of all the dependencies and thanks to the Jetty plugin it can also execute the portal without a DBMS and servlet container, which do not figure in the basic prerequisites for this reason.
所以我知道 Maven 做了什么,阅读文档后,在我看来,Jetty 插件是一个 Maven 插件,它只扫描项目的更改并在发现任何更改时自动重新部署 webapp .这通过消除构建和部署步骤提高了开发周期的效率。
好吧……这看起来很清楚,但是它用于在没有 DBMS 和 servlet 容器的情况下执行门户是什么意思?
最佳答案
我假设您引用了 Entando 的文档。
关于 Jetty,它是一个完整的 Web 服务器,可以轻松地作为嵌入式服务器运行。您可以在他们的网站上找到有关 jetty 的各种信息:http://www.eclipse.org/jetty/
特别有趣的是 Jetty 对此处描述的 Maven 标准目录布局的良好支持:http://www.eclipse.org/jetty/documentation/current/jetty-maven-plugin.html#configuring-your-webapp
在给您最终答案之前,让我们先快速了解一下在处理 Web 应用程序项目时使用 Jetty 有多容易。
您可以像这样从控制台从 Maven 原型(prototype)生成 Web 应用程序(假设您使用 Windows 并且您已经设置了 MAVEN_HOME-Variable 并将其添加到 PATH-Variable,否则从安装 Maven 的地方运行它):
mvn archetype:generate -DgroupId=ch.jba -DartifactId=SampleWebApp -DarchetypeArtifactId=maven-archetype-webapp
您可能需要点击 Enter
几次使用默认值(例如版本)。
之后你会有一个文件夹SampleWebApp
在您运行上述命令的目录中。在这个文件夹里面有 pom.xml
项目以及/src
文件夹。
(作为可选步骤,您可以将此项目导入您的 IDE - 选择 Java 1.7,这是我快速验证的版本,它可以用于下一步)。
现在,如果您浏览 src\main\webapp
下的文件你会认出(我想是的......)标准的 web 应用程序目录结构就像这里描述的例子:https://docs.oracle.com/javaee/6/tutorial/doc/bnadx.html .
现在您可以通过运行命令 mvn clean install
来构建这个项目了。 - 这将产生非常想要的 SampleWebApp.war
在 SampleWebApp\target
下存档.
如果您不想在本地设置 Tomcat 之类的网络服务器并仍然快速运行示例应用程序,那么此时 Jetty 就会发挥作用。只需在 </build>
上方添加以下内容即可在你的pom.xml
:
<plugins>
<plugin>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-maven-plugin</artifactId>
<version>9.2.11.v20150529</version>
</plugin>
</plugins>
</build>
这会将 Jetty-Plugin(与 Java 1.7 兼容)添加到您的 Maven 项目中,您可以运行 mvn jetty:run
从您的目录中 pom.xml
居住。查看构建输出时,您会发现一些异常,例如 webAppSourceDirectory not set. Trying src\main\webapp
这正是我上面提到的 Jetty 对 Maven 的标准目录布局的非常好的支持。
之后您将看到示例项目部署在 Jetty 上并且可以在 http://localhost:8080
下访问(它将显示 Hellow World!
或您放入位于 SampleWebApp\src\main\webapp 下的 index.jsp
中的任何其他内容。
现在终于可以回答您的问题了:
看看你引用的这一部分:
它也可以在没有 DBMS 和 servlet 容器的情况下执行门户,由于这个原因,它们不在基本先决条件中。
它告诉您 Entando(无论那是什么......我自己还没有听说过)在您已阅读该引用的状态下故意执行尚未配置 DBMS 或 servlet容器,让您可以轻松地使用 Jetty 运行它。
如果您继续阅读 Entando 的教程/手册,它可能会告诉您如何配置 Jetty 以使用(嵌入式)DMBS(如 H2-In-Memory-DB)和/或如何配置 Jetty 以工作作为 servlet 容器(因此它也支持 HTTPServlet
s)。
=> 如果您问我,Jetty 是一个理想的合作伙伴——要么在您的 pom.xml
中快速配置它,仅从纯 Java 中调用/启动类(并配置它们)或将其安装在磁盘上并从命令行将其用作独立服务器(在其属性 XML 中进行配置)。
注意:人们常常忘记 Jetty 不是他们的最终部署环境,他们只是使用它来加快开发过程......不要犯这个错误并部署你的WAR
不时到最终部署环境(如 Tomcat 或其他)。
希望对您有所帮助:)
关于java - Jetty 插件如何为 Maven 工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31241602/
在没有指定上下文和上下文处理程序的情况下启动 jetty 实例是否正确,然后在服务器启动后继续向其添加上下文。尽管我能够使用可变 HandlerCollection 执行此操作并且日志显示服务器和上下
在没有指定上下文和上下文处理程序的情况下启动 jetty 实例是否正确,然后在服务器启动后继续向其添加上下文。尽管我能够使用可变 HandlerCollection 执行此操作并且日志显示服务器和上下
我正在尝试让 Jetty 在我的 Ubuntu 上自动启动。 我已经完成了这些命令: cp /opt/jetty/bin/jetty.sh /etc/init.d update-rc.d jett
我是 Jetty 和客户端/服务器架构的新手。 我设法在 Eclipse 中编写了一个 jetty 服务器,它可以工作。 但是我怎样才能停止 jetty 服务器呢?我听说过 stop.jar 和 st
我已经使用Jetty / tomcat应用服务器使用Spring Web应用程序工作了大约两年了,但是让我感到困惑的是如何在这些服务器中处理多个请求。我知道 Spring 有助于单例,但我的理解仅限于
我正在尝试使用 jetty 来使用 maven 托管一个简单的 helloworld servlet。我很困惑。 我关注了这些 instructions ,但是当我发出 mvn jetty:run ,
我正在使用 Jetty 9,我有 jetty.base 和 jetty.home,我想知道我什么时候启动 jetty,它以什么样的顺序调用 jetty.base 和 jetty.home,我的意思是一
我有一个 Ubuntu 服务器 10.10 64 位 在 上运行 Web 应用程序 jetty 6.1.24-6 在 Sun 的 JVM ,两者都是从标准 Ubuntu 存储库安装的。 我正在尝试查找
我在集成测试中使用 ShrinkWrap 启动 Jetty 服务器。 问题: 当我启动我的测试 jetty 服务器而不是制作我的 Controller 模型时 - 模型不起作用! 我认为原因是不同的类
使用Gradle帮助运行Jetty 9 我已经看到了在how-to-run-jetty-7-with-specified-war-with-groovy-gradle和setting_up_embed
我正在将一个项目打包到 docker jetty 镜像中,并且我正在尝试访问日志,但没有访问日志。 文件 FROM jetty:9.2.10 MAINTAINER Me "me@me.com" ADD
有没有办法解决jetty引起的文件锁定问题?完全来自 gradle ? 一些澄清: 使用 Gradle Jetty plugin 时通过运行 gradle jettyRun, jetty 导致静态资源
我最近才开始使用 Java(我最近的大部分经验都在 .NET 中)。作为这项工作的一部分,我一直在对 Jetty 和 Tomcat 进行一些比较。 我认为在我们的环境中 Tomcat 的一个功能是内置
我已将 Jetty 嵌入到 Java 应用程序中,并在 Jetty 服务器对象的实例上调用 start() 方法(在设置描述静态和动态 Web 内容位置的处理程序列表之后)。 start() 调用会阻
我正在使用 Jetty 部署生产网站。假设我的网站是 foo.com 当我将浏览器指向一个不存在的上下文(比如 foo.com/notavailable)时,Jetty 会显示一个错误页面,其中包含部
我想使用 Jetty 的嵌入式版本创建一个应用程序。不幸的是,我找不到有关我需要这样做的 jar 文件的任何信息。 Maven 存储库中有几个( http://repo2.maven.org/mave
This answer explains how the server version header can be completely removed通过使用 HttpConfiguration.s
有人可以告诉我DispatcherType在做什么吗? 似乎是重要的配置。 指向ServletContextHandler#addFilter之类的东西对类的使用也没有帮助,对我来说,“ aa”是明智
我正在尝试使用jetty gradle插件运行Jetty服务器进行功能测试。但是,我得到了java.lang.IllegalArgumentException: Object is not of ty
我需要在gradle构建中创建多种不同的模式来运行 jetty 。 它们的系统属性和类路径不同。 如何使用Gradle Jetty插件进行操作? 最佳答案 您可以创建JettyRun类型的多个任务。要
我是一名优秀的程序员,十分优秀!