Kiv*_*iva 11 java maven-plugin maven maven-assembly-plugin
我有maven程序集插件的问题.
我有一个使用几个罐子的maven项目.每个jar包含配置文件.在另一个项目中,我使用maven程序集插件来组装独特jar中的所有配置.
一切正常,但不幸的是,两个文件名相同,第二个文件覆盖第一个.
我没有实现告诉maven合并两个文件而不是覆盖.
有人知道怎么做吗?
谢谢.
小智 8
该行家遮阳帘插件 与AppendingTransformer结合应该做你想要什么.
我们使用它将两个zip项目(定义为单独的maven模块)的属性文件合并到一个zip文件中.这将从两个模块创建文件和目录的超集,并将指定的属性文件合并在一起.我们还定义要合并的模块作为执行合并的maven模块的依赖项.
像这样的东西应该做的伎俩:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>1.4</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<filters>
<filter>
<artifact>groupname:artifactname</artifact>
<includes>
<include>**/*</include>
</includes>
</filter>
</filters>
<transformers>
<transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
<resource>propertyfiletomerge.properties</resource>
</transformer>
</transformers>
</configuration>
</execution>
</executions>
</plugin>
Run Code Online (Sandbox Code Playgroud)
它并不是您要找的东西,但是我会使用http://maven.apache.org/plugins/maven-antrun-plugin/插件来运行ant concat任务http://ant.apache.org/manual/ Tasks / concat.html合并文件。我将在prepare-package阶段运行maven-antrun 。
小智 5
根据 Skarab 的回答,这是我使用maven-antrun-plugin解决此问题的代码:
<project>
...
<build>
...
<plugins>
...
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.8</version>
<executions>
<execution>
<phase>prepare-package</phase>
<configuration>
<target>
<concat destfile="${project.build.directory}/setup_db.sql">
<fileset file="${project.basedir}/src/main/resources/db/sql_one/*.sql" />
<fileset file="${project.basedir}/src/main/resources/db/sql_another/*.sql" />
</concat>
</target>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
</plugin>
...
</plugins>
</build>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
17514 次 |
| 最近记录: |