Java 如何使用Maven工件作为另一工件(或模块)的输入?

Java 如何使用Maven工件作为另一工件(或模块)的输入?,java,maven,multi-module,Java,Maven,Multi Module,我有一个原始的JavaWebApp(从而生成一个WAR文件),它由Maven管理,我们称之为webapp 我喜欢保持它的Maven配置不变,但有时我需要,比如说,通过操纵它的内容(或者无论如何,对它应用通用操作)来后期生成生成的WAR 所以我做了一个多模块项目: - multimodule +-- webapp +-- operator 操作员可以做几件事。例如,它调用一个(Java)命令行程序,对WAR进行一些检查:如何获取“webapp”模块输出(即WAR文件),并将其设置

我有一个原始的JavaWebApp(从而生成一个WAR文件),它由Maven管理,我们称之为
webapp

我喜欢保持它的Maven配置不变,但有时我需要,比如说,通过操纵它的内容(或者无论如何,对它应用通用操作)来后期生成生成的WAR

所以我做了一个多模块项目:

- multimodule
    +-- webapp
    +-- operator
操作员可以做几件事。例如,它调用一个(Java)命令行程序,对WAR进行一些检查:如何获取“webapp”模块输出(即WAR文件),并将其设置为
操作符
模块的输入

我不知道怎么做,也不知道在网上搜索什么,所以我被卡住了。

看看


您应该能够定义两个配置文件并配置第二个配置文件来执行其他操作。如果您采用这种方法,您将不需要两个模块。

您需要使
webapp
成为
操作员
项目的依赖项

操作员的示例POM


4.0.0
罐子
0.0.1-快照
我的群组ID
. 该插件有一个目标,用于将项目的所有直接依赖项复制到文件系统中的某个位置。示例配置为:


. 示例配置,启动
操作员-param1 webapp.war


org.codehaus.mojo
execmaven插件
1.4.0
执行官
操作人员
${project.build.directory}/libs
-参数1
webapp.war

事实上,我的设置有点不同:我的主要目标是将两个类似的WAR传递给一个外部程序(我在这里简化了),因此每个WAR都必须有一个模块;另外,我希望将每个WAR构建配置与其他和可变操作分开,所以我认为配置文件不适合这里。是的,谢谢。但是,我的疑问就在这里出现:我该如何继续?例如,假设
operator
是这样调用的程序:
operator-param1 webapp.war
,我应该在
operator
POM中做什么?很好!还有一件事:由于
webapp.war
是从依赖项生成的,我可以通过属性或其他动态方式检索它,这样我就不必每次更改
文本,例如依赖项版本?@watery您可以始终使用属性
${project.version}
要获得动态版本,我更倾向于
${dependency1}
-它应该解析为
webapp-.war
或类似的版本。这将是最好的,否则我已经找到了重命名单个依赖项的
配置