- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
类似问题here .
我想从 3 个不同的 Maven 模块中部署一个生成的 WAR。 war 模块绝对不冲突:
第一个有 Java 类和一些 WEB-INF/工件的
第二个只是 API - 接口(interface) - 必须已经存在于容器中或由此产生的 war 的一部分(这就是我想要的)
第三个带有实现类、WEB-INF/artifacts(spring infrastructure、web.xml 等)
第一个取决于接口(interface)和实现。第三个取决于接口(interface)。
我对可能的选择一团糟。
我是否为此使用叠加层?
或者我是否使用程序集插件来集成第二个类中的类?
我是否使用 Cargo plugin ?
或者如果我指定来自不同模块的 webResources,它是由 maven-war-plugin 完成的吗?因为this dude和我做的几乎一样,但是只有 2 个 war 模块,而且他不使用 assembly 插件,也不使用 Overlays....
请告诉我,这是如何正确完成的?
最佳答案
这只需要对 maven jar 和 war 插件进行一些高级使用。
First one that has Java classes and some WEB-INF/artifacts
假设这代表主要的 WAR。您只需使用 maven-war-plugin 的 Overlays 功能。最基本的方法是指定 war 依赖:
<dependency>
<groupId>${groupId}</groupId>
<artifactId>${rootArtifactId}-service-impl</artifactId>
<version>${version}</version>
<type>war</type>
<scope>runtime</scope>
</dependency>
并告诉 maven war 插件将此依赖项的 Assets 合并到主 war 中(我们现在所在的位置)
<plugin>
<artifactId>maven-war-plugin</artifactId>
<configuration>
<dependentWarExcludes>WEB-INF/web.xml,**/**.class</dependentWarExcludes>
<webResources>
<resource>
<!-- change if necessary -->
<directory>src/main/webapp/WEB-INF</directory>
<filtering>true</filtering>
<targetPath>WEB-INF</targetPath>
</resource>
</webResources>
</configuration>
</plugin>
您还包括对第二个的 jar 类型依赖(它将是 WEB-INF/lib/
中的 JAR)
<dependency>
<groupId>${groupId}</groupId>
<artifactId>${rootArtifactId}-service</artifactId>
<version>${version}</version>
<type>jar</type>
</dependency>
并且您还需要指定对第三次 WAR 中的类的依赖:
<dependency>
<groupId>${groupId}</groupId>
<artifactId>${rootArtifactId}-service-impl</artifactId>
<version>${version}</version>
<classifier>classes</classifier>
<type>jar</type>
</dependency>
分类器的通知,这是必要的,因为您正在指定同一工件的 2 个依赖项......为了使其工作,您必须在第三个工件( war 类型工件)中设置 jar 插件,关于分类器和事实上,您需要一个工件(war 和 jar)中的 2 个包:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<!-- jar goal must be attached to package phase because this artifact is WAR and we need additional package -->
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>jar</goal>
</goals>
<configuration>
<!--
classifier must be specified because we specify 2 artifactId dependencies in Portlet module, they differ in type jar/war, but maven requires classifier in this case
-->
<classifier>classes</classifier>
<includes>
<include>**/**.class</include>
</includes>
</configuration>
</execution>
</executions>
</plugin>
关于java - 如何将多模块maven项目组装成一个WAR?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7897114/
在组装方面,我绝对是个初学者。我尝试找出以下内容的输出应该是什么: Jan dd 255,256 Feb dw 16, 17, 18, 19 Mar db 8, 9, 10, 11 Sub edi,
我正在用 AT&T 语法编写。这个循环应该检查大小写是否在 61-7A ASCII 范围内(这意味着是这个小字母) - 如果不是,则将其转换为空格“”。 change: movb (%esi)
mov eax, ptr_to_num1 ; little endian mov ebx, ptr_to_num2 ; little endian xor ecx, ecx xor edx, edx
我正在制作用于组装的 atoi 函数。 无论我尝试什么都行不通,我也不知道为什么。 有谁知道是什么问题? org 100h mov si, stri ;parameter call atoi
我正在使用 tasm 编写汇编程序。我的任务是编写一个程序,该程序将使用冒泡排序按字母顺序对输入的字符串进行排序。前任。如果你输入“hello”,它应该写成“ehello”。我已经写了请求输入字符串并
假设我的 GPU 包含一个名为 ADT7473 的芯片。 . 我有兴趣从该芯片接收有关我的卡温度的信息。 我的问题是,如何访问这个芯片?是使用 IN/OUT 指令完成的吗? 编辑: 我可能会添加芯片文
我需要在DOS下通过Assembly(intel)+C(c99)绘制QRCode。但看来我的内存太少了。我尝试将图像存储为位数组: image db 11111110b, ... 但无论如何我没有结果
这里有一个简短的问题。我有一个程序集被一些开发人员重复使用,其中包含各种功能,但在技术上分为代表功能逻辑 block 的各种命名空间。 现在,它提供的公共(public) namespace 越少越好
小端: mov eax,4 push dword 0x44434241 mov ebx,1 mov ecx,esp mov edx,4 int 0x80 add esp,4 我不明白为什么它打印 A
是否可以使用元编程技巧来允许在 assembly block 上使用 SFINAE?例如检测处理器上是否有类似“CPUID”的指令:(这不是有效的代码,但说明了我想要实现的目标) // This sh
我有以下形式的项目 - pom.xml - projectA - pom.xml - src/main/ - java - startupScript - projectB
在《微处理器的音乐应用》一书中,作者给出了以下算法,将两个 8 位有符号整数与 16 位有符号结果进行 4 象限相乘: 对原始操作数进行无符号乘法。然后为了更正结果,如果被乘数符号为负,则无符号单精度
我们有一个项目,我们正在 build 大量 Scalatra microservices通过使用 sbt-assembly 打包它们插件,然后使用 sbt-docker 创建 Docker 镜像插入。
所有使用布局的 assemble 用户都知道“{{> body }}”标记了任何使用布局的页面的内容插入点。但是是否可以定义多个插入点,而不是将所有内容都扔到 {{> body }} 所在的位置? 例
我刚开始学习汇编,我没有找到任何有用的内容。 我正在创建一个简单的程序来读取用户输入,基本上: section .bss opA: resw 1 opB: resw 1 section
我目前正在尝试在 bochs 中编译并运行一个简单的引导加载程序。目前,这是我的 bootloader.asm 文件: [BITS 16] [ORG 0x7C00] ;Where the code g
我正在组装一个“simon”游戏,我需要在按钮打开时发出蜂鸣声,蜂鸣声也应该彼此不同。谢谢 最佳答案 您可以使用speaker让您的设计保持简单。 扬声器可让您播放不同频率的方波,it can act
我无法通过任何文档找到问题的答案。 可靠集合通过云的多个节点共享,并且具有名称和持久性。 它们可以通过不同的应用程序共享还是特定于应用程序? 例如,两个不同的 MVC 应用程序对同一帐户托管的可靠字典
嗨,我有一个 SBT 构建文件,用于处理我们组织内的集成测试,测试本身可以工作,我可以单独运行单元和它测试。但是,当使用 sbt-assemble 打包应用程序时,我无法按顺序运行两个测试(unit+
我正在运行一些汇编代码,但我无法弄清楚一行代码的作用。代码是: leaq 0(,%rax,4), %rdx 我知道lea基本上是一种mov指令,但它只移动地址。因此,我们将某些内容的地址移动到%
我是一名优秀的程序员,十分优秀!