使用maven插件列出文件夹中的文件

csga3l58  于 11个月前  发布在  Maven
关注(0)|答案(2)|浏览(146)

我想使用maven-plugin将文件中的$file-list$替换为项目文件夹中以逗号分隔的文件列表。这可能吗?
谢谢

oxf4rvwz

oxf4rvwz1#

我是这么做的:
使用antrun插件创建一个包含列表的临时文件:

<plugin>
    <artifactId>maven-antrun-plugin</artifactId>
    <version>1.7</version>
    <executions>
        <execution>
            <phase>generate-sources</phase>
            <configuration>
                <target>
                    <fileset id="my-fileset" dir="src/main/resources" />
                    <pathconvert targetos="unix" pathsep=","
                        property="my-file-list" refid="my-fileset">
                        <map from="${basedir}\src\main\resources\" to="" />
                    </pathconvert>
                    <echo file="${basedir}\target\file-list.txt">${my-file-list}</echo>
                </target>
            </configuration>
            <goals>
                <goal>run</goal>
            </goals>
        </execution>
    </executions>
</plugin>

字符串
然后,我使用插件替换我想要的文件中的列表:

<plugin>
    <groupId>com.google.code.maven-replacer-plugin</groupId>
    <artifactId>maven-replacer-plugin</artifactId>
    <executions>
        <execution>
            <id>replace-file-list</id>
            <phase>prepare-package</phase>
            <goals>
                <goal>replace</goal>
            </goals>
            <configuration>
                <ignoreMissingFile>false</ignoreMissingFile>
                <file>target/MY_FILE.TXT</file>
                <regex>false</regex>
                <token>$file-list$</token>
                <valueFile>target/file-list.txt</valueFile>
            </configuration>
        </execution>
    </executions>
</plugin>


我相信一定有更好的方法,但希望这对某人有所帮助。

8hhllhi2

8hhllhi22#

如果你使用maven-antrun-plugin来生成输入,那么你也可以使用它来更新你的文件-它将是同一个插件中的另一个命令,所以稍微简单和干净。
我做过这样的事情:

<plugin>
    <artifactId>maven-antrun-plugin</artifactId>
    <version>1.8</version>
    <executions>
        <execution>
            <phase>generate-sources</phase>
            <configuration>
                <target>
                    <fileset id="file-list" dir="src/main/resources"/>
                    <pathconvert targetos="unix" pathsep=","
                            property="file-list" refid="anot-list">
                        <map from="${basedir}/src/main/resources/" to=""/>
                    </pathconvert>
                    <replace file="${basedir}/target/MY_FILE.TXT">
                        <replacefilter token="$file-list$" value="${file-list}"/>
                    </replace>
                </target>
            </configuration>
            <goals>
                <goal>run</goal>
            </goals>
        </execution>
    </executions>
</plugin>

字符串

相关问题