我已经在继承代码上工作了几天了,我正试图了解maven是如何工作的,以及为什么要按原样配置项目。该项目使用Jetty作为http服务器,并提供Angular应用程序,此外还使用Jersey为Angular应用程序提供RESTfulendpoint。项目目录为:
src
main
config
java
Java code, including Jetty server
webapp
WEB-INF
web.xml
index.html and all things Angular are also in this directory
作为部署过程的一部分,我被告知设置maven,以便将项目打包为. war。为此,我有以下内容:
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.1.1</version>
<executions>
<execution>
<phase>install</phase>
<goals>
<goal>exploded</goal>
</goals>
</execution>
</executions>
<configuration>
<packagingExcludes>WEB-INF/lib</packagingExcludes>
<webappDirectory>src/main/webapp</webappDirectory>
<warName>${project.name}</warName>
</configuration>
</plugin>
</plugins>
当我运行mvn安装时,在我的src/main/webapp/WEB-INF中会生成以下两个代码:lib/
和类/
。现在,当我运行该项目时,在Java级别上有冲突,我发现问题的原因是这两个新目录现在存在于我的目标/类/WEB-INF中。删除它们并运行:target/classes/com/根类解决了该问题。但是如果目标/类/WEB-INF/类/com/根类,则项目开始在运行时引发异常。在不深入研究底层异常的情况下,有人能解释一下为什么我想/不想为我生成
WEB-INF/classes
和WEB-INF/lib
,如果我不想,我如何在maven中禁用它们的创建?
编辑:我发现将
webappDirectory
属性替换为webXml
属性将防止复制lib/
和类/
,但是,我仍然不清楚为什么我首先想要这些目录。
Maven奉行“约定优于配置”的理念。
您希望拥有一个不遵循惯例的WebApp,这会导致您遇到问题。
注释掉整个<代码>
构建为WAR文件并包含所有依赖项的WebApp(如关于WebApp定义的Servlet规范)。
WEB-INF/lib是webapp需要的所有依赖项的查找位置。可以是WAR文件格式,也可以是分解格式。
然而,您似乎希望从maven获得一个分解的WAR文件,但不知道为什么,因为这在构建过程中不再有任何好处。(您可以使用默认war行为和各种web容器maven插件,直接从maven在您选择的嵌入式容器中运行webapp)
如果您坚持爆炸,请考虑以下建议:
简而言之,您不需要<代码>
我试图将每个列表都位于嵌套对象内的webservice模型映射到更简单的对象。 模型1 映射非常简单: 映射工作正常,除了一个问题。当我将带有null子级的父母映射到父母2并返回父母时,儿童对象是用空列表创建的。有什么方法可以防止这种情况吗?
以下脚本可以防止安装程序重复运行: Function .onInit InitPluginsDir ;创建互斥防止重复运行 System::Call 'kernel32::CreateMutexA(i 0, i 0, t "WinSnap_installer") i .r1 ?e' Pop $R0 StrCmp $R0 0 +3 MessageBox MB_OK|MB_IC
问题内容: 我正在编写一个在Linux上运行的Java应用程序(使用Sun的JDK)。它一直在创建目录,我想防止这样做。有什么方法可以阻止Java创建这些文件? 问题答案: 尝试JVM选项 -XX:-UsePerfData 更多信息 来自链接https://docs.oracle.com/javase/8/docs/technotes/tools/unix/java.html的以下内容可能会有所帮
我刚开始遇到这个错误。它在运行之前一直工作: 在我运行的任何东西上都会出现这样的错误: 安装软件包。这可能需要几分钟。正在使用cra模板安装react、react dom和react脚本。。。 纱线添加v1。21.1信息未找到锁定文件。[1/4]正在解析包。。。错误发生意外错误:https://registry.npmjs.org/react:错误:0909006C:PEM例程:get_名称:无起
我是Maven的新手,我有一个基于Java的web项目,在我的MyEclipse中配置了Maven。 现在,如果我修改了任何Java文件,那么我需要执行还是?
问题内容: 我的package.json文件中有此文件(简化版): 我在Mac 10.6.8上使用NPM 1.1.1版本。 当我从项目根目录运行以下命令时,它将同时安装 和 : 我印象中该命令安装了: 我如何做到只安装(这样,生产环境只获取那些模块),而同时安装和呢? 问题答案: 当在开发环境(默认)中的软件包目录中运行时,该命令将与其他命令一起安装。 使用(或) 仅 安装,而不考虑环境变量的值。