Jetty 插件如何为 Maven 工作?
How Jetty plugin works for Maven?
我是 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 服务器,可以很容易地 运行 作为嵌入式服务器。您可以在他们的网站上找到有关码头的各种信息:http://www.eclipse.org/jetty/
特别有趣的是 Jetty 对此处描述的 Maven 标准目录布局的良好支持:http://www.eclipse.org/jetty/documentation/current/jetty-maven-plugin.html#configuring-your-webapp
在给您最终答案之前,让我们先快速了解一下在处理 Web 应用程序项目时使用 Jetty 有多容易。
您可以像这样从控制台从 Maven 原型生成 Web 应用程序(假设您使用 Windows 并且您已经设置 MAVEN_HOME-Variable 并将其添加到 PATH 变量,否则 运行 它来自安装 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\target
下生成非常想要的 SampleWebApp.war
存档.
如果您不想在本地设置像 Tomcat 这样的 Web 服务器并且仍然快速地 运行 示例应用程序,那么此时 Jetty 将发挥作用。只需在 pom.xml
中的 </build>
上方添加以下内容:
<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 项目中,您可以从 pom.xml
的目录中 运行 mvn jetty:run
居住。查看构建输出时,您会发现一些异常,例如 webAppSourceDirectory not set. Trying src\main\webapp
,这正是我上面提到的 Jetty 对 Maven 标准目录布局 的非常好的支持。
之后您将看到示例项目部署在 Jetty 上并且可以在 http://localhost:8080
下访问(它将显示 Hellow World!
或您放入位于 index.jsp
中的任何其他内容 SampleWebApp\src\main\webapp`.
现在终于可以回答你的问题了:
看看你引用的这一部分:
它也可以在没有 DBMS 和 servlet 容器的情况下执行门户,因此不在基本先决条件中。
它告诉你 Entando(不管那是什么......我自己还没有听说过它)在你已经阅读的状态下故意这样做引用尚未配置一个 DBMS 或一个 servlet 容器,允许您以简单的方式 运行 它与 Jetty。
如果您继续学习 Entando 的教程/手册,它可能会告诉您如何配置 Jetty 以使用(嵌入式)DMBS(如 H2-In-Memory-DB)and/or如何配置 Jetty 作为 servlet 容器工作(因此它也支持 HTTPServlet
s)。
=> 如果您问我,Jetty 是一个理想的合作伙伴——要么在您的 pom.xml
、call/start 和 类 中快速配置它(并配置它们)仅在纯 Java 内或将其安装在您的磁盘上并从命令行将其用作独立服务器(在其属性 XML 中进行配置)。
注意:人们常常忘记 Jetty 不是他们的最终部署环境,他们只是使用它来加快开发过程.. . 不要犯那个错误,不时将您的 WAR
部署到最终部署环境(如 Tomcat 或其他)。
希望对您有所帮助:)
我是 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 服务器,可以很容易地 运行 作为嵌入式服务器。您可以在他们的网站上找到有关码头的各种信息:http://www.eclipse.org/jetty/
特别有趣的是 Jetty 对此处描述的 Maven 标准目录布局的良好支持:http://www.eclipse.org/jetty/documentation/current/jetty-maven-plugin.html#configuring-your-webapp
在给您最终答案之前,让我们先快速了解一下在处理 Web 应用程序项目时使用 Jetty 有多容易。
您可以像这样从控制台从 Maven 原型生成 Web 应用程序(假设您使用 Windows 并且您已经设置 MAVEN_HOME-Variable 并将其添加到 PATH 变量,否则 运行 它来自安装 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\target
下生成非常想要的 SampleWebApp.war
存档.
如果您不想在本地设置像 Tomcat 这样的 Web 服务器并且仍然快速地 运行 示例应用程序,那么此时 Jetty 将发挥作用。只需在 pom.xml
中的 </build>
上方添加以下内容:
<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 项目中,您可以从 pom.xml
的目录中 运行 mvn jetty:run
居住。查看构建输出时,您会发现一些异常,例如 webAppSourceDirectory not set. Trying src\main\webapp
,这正是我上面提到的 Jetty 对 Maven 标准目录布局 的非常好的支持。
之后您将看到示例项目部署在 Jetty 上并且可以在 http://localhost:8080
下访问(它将显示 Hellow World!
或您放入位于 index.jsp
中的任何其他内容 SampleWebApp\src\main\webapp`.
现在终于可以回答你的问题了:
看看你引用的这一部分:
它也可以在没有 DBMS 和 servlet 容器的情况下执行门户,因此不在基本先决条件中。
它告诉你 Entando(不管那是什么......我自己还没有听说过它)在你已经阅读的状态下故意这样做引用尚未配置一个 DBMS 或一个 servlet 容器,允许您以简单的方式 运行 它与 Jetty。
如果您继续学习 Entando 的教程/手册,它可能会告诉您如何配置 Jetty 以使用(嵌入式)DMBS(如 H2-In-Memory-DB)and/or如何配置 Jetty 作为 servlet 容器工作(因此它也支持 HTTPServlet
s)。
=> 如果您问我,Jetty 是一个理想的合作伙伴——要么在您的 pom.xml
、call/start 和 类 中快速配置它(并配置它们)仅在纯 Java 内或将其安装在您的磁盘上并从命令行将其用作独立服务器(在其属性 XML 中进行配置)。
注意:人们常常忘记 Jetty 不是他们的最终部署环境,他们只是使用它来加快开发过程.. . 不要犯那个错误,不时将您的 WAR
部署到最终部署环境(如 Tomcat 或其他)。
希望对您有所帮助:)