如何正确地从多模块包中的另一个模块解压缩资源?

时间:2015-12-11 18:55:30

标签: java python maven swagger

我使用Maven来处理具有多个模块的多模块。

  • 其中一个是JAX-RS项目(我们称之为module-jax-rs。我使用swagger-maven-plugin生成Swagger json并将其作为资源捆绑在module-jax-rs中。
  • 另一个模块module-python是一个python模块,它依赖于module-jax-rs中的Swagger Json,使用另一个Maven插件生成Swagger客户端swagger-codegen-maven-plugin
  • 但是,为此,我需要在编译swagger.json之前从module-jax-rs解包module-python文件。
  • 这适用于mvn package但不适用mvn compile,因为mvn compile无法生成我可以提取的包。

我应该怎么做才能在不遇到以下错误的情况下仍然运行mvn compile

[ERROR] Failed to execute goal org.apache.maven.plugins:
maven-dependency-plugin:2.10:unpack-dependencies (unpack) 
on project module-python: Artifact has not been packaged yet. 
When used on reactor artifact, unpack should be executed after
packaging: see MDEP-98. -> [Help 1]

1 个答案:

答案 0 :(得分:0)

你基本上可以使用antrun插件和文件的相对路径将swagger.json复制到module-python中。

然而,这并不是使用来自另一个模块的资源的正确方法,即使在同一个多模块项目中也是如此。通常,使用其他模块资源的正确方法是允许具有所需资源的模块将这些资源打包并安装到jar文件中,然后只需在任何需要它的模块中导入该jar文件。当然,要实现这一点,您必须运行包目标。

我不确定您为什么要避免打包目标。我从未遇到过有充分理由不运行它的情况。