Maven资源文件,将java类文件和属性文件放在同一个目录下

新手上路,请多包涵

我在同一目录中有 java 类文件和属性文件。

src/main/java/com/berlin/Test.class

src/main/java/com/berlin/Test.properties

使用我构建的 maven jar 和 maven 目标,我希望它们出现在同一目录中。但是当我执行“mvn package”时,maven 将类文件和属性文件放在不同的位置。

.. 输出:jar -tvf file.jar:

美国东部时间 2011 年 6 月 11 日星期六 08:24:32 main/java/com/berlin/Test.properties

我想要: Sat Jun 11 08:24:32 EDT 2011 com/berlin/Test.properties Sat Jun 11 08:24:32 EDT 2011 com/berlin/Test.class

我的一部分:

 <build>
        <finalName>${project.artifactId}</finalName>
        <sourceDirectory>src</sourceDirectory>
        <testSourceDirectory>test</testSourceDirectory>
        <resources>
            <resource>
                <directory>src</directory>
                <includes>
                    <include>**</include>
                </includes>
                <excludes>
                    <exclude>**/*.java</exclude>
                </excludes>
            </resource>
        </resources>
<plugins>
            <plugin>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>${java.source.version}</source>
                    <target>${java.target.version}</target>
                </configuration>
            </plugin>
            <plugin>
                <artifactId>maven-surefire-plugin</artifactId>
                <configuration>
                    <skipTests>true</skipTests>
                </configuration>
            </plugin>
        </plugins>

原文由 Berlin Brown 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 378
2 个回答

出于 Maven 的原因,您应该将属性文件放在 src/main/resources 中,而不是放在 src/main/java 目录中(保持相同的子文件夹结构)。

话虽如此,要获得您想要的内容,您需要将(在您的 pom.xml 中) src 替换为 src/main/java 。未经测试,但如果您有问题,请分享。

原文由 Milan Aleksić 发布,翻译遵循 CC BY-SA 3.0 许可协议

首先,你应该将你的资源放入 src/main/resources/com/berlin/Test.properties 并将你的 java 源文件放入 src/main/java/com/berlin/Test.java ……永远不要将已编译的类放入 src/ 文件夹…此外,您应该删除配置:

   <finalName>${project.artifactId}</finalName>
  <sourceDirectory>src</sourceDirectory>
  <testSourceDirectory>test</testSourceDirectory>
  <resources>
        <resource>
            <directory>src</directory>
            <includes>
                <include>**</include>
            </includes>
            <excludes>
                <exclude>**/*.java</exclude>
            </excludes>
        </resource>
    </resources>

从你的 pom,因为你不需要它而且它是错误的(约定优于配置范式!)。看一下 maven 中的 默认文件夹布局

Maven方式是将源文件(*.java)放到src/main/java中,资源src/main/resources。单元测试类 src/test/java 和 src/test/resources 编译后将被放入 target/classes 或用于测试的 target/test-classes。

原文由 khmarbaise 发布,翻译遵循 CC BY-SA 3.0 许可协议

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