使用assembly打包java项目时,无法读取resources中的selectData01.json文件

github地址

<assembly
        xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.3"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.3 http://maven.apache.org/xsd/assembly-1.1.3.xsd">
    <id>bin</id>
    <formats>
        <format>tar.gz</format>
    </formats>
    <includeBaseDirectory>true</includeBaseDirectory>
    <fileSets>
        <fileSet>
            <directory>${project.basedir}</directory>
            <outputDirectory>./</outputDirectory>
            <includes>
                <include>README*</include>
                <include>LICENSE*</include>
                <include>NOTICE*</include>
                <include>src/main/resources/*/*</include>
            </includes>
        </fileSet>

        <!-- <fileSet> <directory>${project.build.directory}</directory> <outputDirectory>./</outputDirectory>
            <includes> <include>*.jar</include> </includes> </fileSet> -->

        <fileSet>
            <directory>bin</directory>
            <outputDirectory>bin</outputDirectory>
            <fileMode>777</fileMode>
        </fileSet>
        <fileSet>
            <directory>logs</directory>
            <outputDirectory>logs</outputDirectory>
            <excludes>
                <exclude>*</exclude>
            </excludes>
        </fileSet>
        <fileSet>
            <directory>statics</directory>
            <outputDirectory>statics</outputDirectory>
        </fileSet>
        <fileSet>
            <directory>docs</directory>
            <outputDirectory>docs</outputDirectory>
        </fileSet>
        <fileSet>
            <directory>conf</directory>
            <outputDirectory>conf</outputDirectory>
        </fileSet>
    </fileSets>
    <dependencySets>
        <dependencySet>
            <outputDirectory>lib</outputDirectory>
            <!-- 将scope为runtime的依赖包打包到lib目录下。 -->
            <scope>runtime</scope>
        </dependencySet>
    </dependencySets>
</assembly>

补充

我想使用这段函数读取

List<List<String>> listFiles = new ArrayList<>();

        File root = new File(DashBoardListener.class.getClassLoader().getResource("collectData/").getPath());
        Arrays
                .stream(Objects.requireNonNull(root.listFiles( )))
                .filter(file -> file.getName().endsWith("json"))
                .map(File::toPath)
                .forEach(path -> {
                    try {
                        //List<String> lines = Files.readAllLines(path);
                        //System.out.println("lines = " + lines);
                        List<String> lines = Files.readAllLines(path);
                        listFiles.add(lines);
                    } catch (IOException e) {
                        e.printStackTrace( );
                    }
                });

图片描述

阅读 2k
1 个回答

fileset里增加

<include>**/*.json</include>

或者把<include>src/main/resources/*/*</include>
改成

<include>**/*</include>
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题