如果你能帮我解决这个问题,我会很愉快的。
当我使用maven< 程序集>构建我的项目.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之后获取以下文件结构:
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>
但它没有帮助。我仍然有以前的文件结构。
答案 0 :(得分:6)
您希望将目录的根目录设置为/ environments / dev
<fileSet>
<directory>${basedir}/environments/dev</directory>
<outputDirectory>/</outputDirectory>
<filtered>false</filtered>
</fileSet>
答案 1 :(得分:0)
从maven-assembly-plugin(maven-assembly-plugin)的文档中,我可以看到<fileSets>
标签没有为我们提供更改包含资源的路径的选项。相反,我们可以使用<file>
标签,它为我们提供了这种灵活性。
例如,以下配置将在提取的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>