【问题标题】:Exclude file directory, by assembly plugin MAVEN通过程序集插件 MAVEN 排除文件目录
【发布时间】:2013-10-27 09:30:52
【问题描述】:

如果你能帮我解决这个问题,我会很高兴。

当我使用 maven assembly> 插件将我的项目构建为 .zip 时。

<assembly xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2 http://maven.apache.org/xsd/assembly-1.1.2.xsd">

<id>dev</id>
<formats>
    <format>zip</format>
</formats>

<fileSets>

    <fileSet>
        <directory>${basedir}</directory>
        <includes>
            <include>/environments/dev/**/*.sh</include>
            <include>/environments/dev/**/*.jil</include>
            <include>/environments/dev/**/*.properties</include>
            <include>/environments/dev/**/log4j2.xml</include>  
        </includes>  
    </fileSet>

</fileSets>

<dependencySets>
    <dependencySet>
        <outputDirectory>/lib</outputDirectory>
        <useProjectArtifact>true</useProjectArtifact>
        <scope>runtime</scope>
    </dependencySet>
</dependencySets>

我收到以下文件结构:

build.zip----> environments__
                            |_DEV_
                                  |_bin
                                  |_properties
                                  |_....

我的目标是:

在maven构建后得到如下文件结构:

 build.zip----> 
                                  |_bin
                                  |_properties
                                  |_....

没有环境和 DEV 文件夹。

我在 maven 文档 (http://maven.apache.org/plugins/maven-assembly-plugin/advanced-descriptor-topics.html) 中读到我们可以排除一些文件目录。 这样:

<assembly> 
    ....

    <fileSets> 
        <fileSet>
            <directory>${basedir}</directory>
            <includes>
              ....
            </includes>
            <excludes>
                <exclude>/environments/dev</exclude>
            </excludes>
        </fileSet> 
    </fileSets>

    <dependencySets>
        <dependencySet>
            <outputDirectory>/lib</outputDirectory>
            <useProjectArtifact>true</useProjectArtifact>
            <scope>runtime</scope>
        </dependencySet>
    </dependencySets>
</assembly>

但这无济于事。我还有以前的文件结构。

【问题讨论】:

    标签: java maven maven-plugin maven-assembly-plugin


    【解决方案1】:

    您想将目录的根设置为 /environments/dev

    <fileSet>
        <directory>${basedir}/environments/dev</directory>
        <outputDirectory>/</outputDirectory>
        <filtered>false</filtered>
    </fileSet>
    

    【讨论】:

      【解决方案2】:

      从 maven-assembly-plugin (maven-assembly-plugin) 的文档中,我可以看到 &lt;fileSets&gt; 标签没有为我们提供更改包含资源路径的选项。相反,我们可以使用&lt;file&gt; 标签,这给了我们这种灵活性。

      例如,下面的配置将在解压的 zip 文件的根文件夹中包含 file1.jar 和 run.bat,跳过它们的原始路径。

      <assembly>
        <formats>
          <format>zip</format>
        </formats>
        <includeBaseDirectory>false</includeBaseDirectory>
        <files>
          <file>
            <source>target/file1.jar</source>
            <destName>file1.jar</destName>
          </file>
          <file>
            <source>src/main/resources/run.bat</source>
            <destName>run.bat</destName>
          </file>
        </files>
      </assembly>
      

      【讨论】:

        猜你喜欢
        • 2019-02-19
        • 1970-01-01
        • 2015-03-13
        • 2015-09-08
        • 2011-06-29
        • 2015-12-13
        • 1970-01-01
        • 2010-12-11
        • 1970-01-01
        相关资源
        最近更新 更多