【问题标题】:How to unpack artifact and filter resources?如何解包工件和过滤资源?
【发布时间】:2010-03-05 23:38:00
【问题描述】:

我正在寻找一种方法,如何使用 maven 将任何文件复制到我的 Web 服务器。我有一个 maven 项目,其中包含一组 html、js、属性和配置文件。

我想打包我的东西并部署到存储库。之后在另一个 maven 项目中,我想从工件中解压缩文件,过滤资源并复制到服务器上的指定文件夹。

最好的方法是什么?

maven-dependency-plugin 可以解压artifact,但是我没有找到在这种情况下如何使用资源过滤以及如何指定多个输出目录。

【问题讨论】:

    标签: maven-2 filtering maven-plugin


    【解决方案1】:

    我会根据需要使用maven assembly plugin 创建尽可能多的发行版并使用filtering在组装时。然后,您可以将这些程序集部署到存储库,实际上,使用 maven 依赖项插件从给定机器检索和解压缩程序集。在 Sonatype 的书中Chapter 8. Maven Assemblies 中了解更多关于程序集的信息。

    更新:如果您不想部署“过滤”程序集,另一种方法是从目标机器创建程序集(仍然使用配置文件和过滤作为建议)。创建的发行版将在正确的文件夹中包含正确的内容(您可以使用程序集执行此操作),并且您只需在最后一步解压缩存档。

    【讨论】:

    • 我想将过滤后的工件存储在存储库中不是一个好主意。过滤是特定于环境的事情。
    • @eugenn 存储“过滤”工件或环境特定工件有什么问题?这实际上发生了很多,尤其是对于特定于平台的发行版(这是一个简单的例子,但 .zip 或 .tar.gz 可能使用不同的行尾字符)。无论如何,未经过滤的工件毫无用处。
    • 例如我有十几个环境来部署我的应用程序。如果我要在构建时对任何工件应用过滤,那么需要将几十个不同的工件部署到一个仓库。或者我可以在 repo 中保留一个“未过滤”版本(原始)并使用过滤,然后我只生成最终应用程序。我希望能够在一个项目中生成“未过滤”的工件(没关系)并在第二个项目中生成、定制最终应用程序。第二个项目应该从第一个项目中生成的工件中删除占位符。
    猜你喜欢
    • 1970-01-01
    • 2022-12-03
    • 1970-01-01
    • 2012-12-18
    • 1970-01-01
    • 2012-06-09
    • 2017-03-05
    • 2016-04-04
    • 2016-08-16
    相关资源
    最近更新 更多