我在同一目录中有java类文件和属性文件。
的src /主/ JAVA / COM /柏林/的Test.class
的src /主/ JAVA / COM /柏林/ Test.properties
使用我构建的maven jar和maven目标,我希望它们出现在同一目录中。但是,当我使用'mvn package'时,maven将类文件和属性文件放在不同的地方。
..输出: jar -tvf file.jar:
Sat Jun 11 08:24:32 EDT 2011 main / java / com / berlin / Test.properties
我想: 星期六6月11日08:24:32 EDT 2011 com / berlin / Test.properties 星期六6月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>
答案 0 :(得分:11)
出于Maven的原因,你应该将属性文件放在src / main / resources中,而不是放在src / main / java目录中(保持相同的子文件夹结构)。
话虽这么说,要获得你想要的东西,你需要用src
替换(在你的pom.xml中)src/main/java
。未经测试,但如果您有问题请分享。
答案 1 :(得分:1)
首先,您应该将资源放入src / main / resources / com / berlin / Test.properties,并将您的java源文件放入src / main / java / com / berlin / Test.java ......永远不要将编译后的类放入src / folder ...此外你应该删除配置:
<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中的default folder layout。
Maven Way是将源文件(* .java)放入src / main / java,资源src / main / resources。编译后的单元测试类src / test / java和src / test / resources将被放入目标/类或测试目标/测试类中。
答案 2 :(得分:0)
<build>
<testResources>
<testResource>
<directory>src/test/resources</directory>
</testResource>
<testResource>
<directory>src/test/java</directory>
<excludes>
<exclude>**/*.java</exclude>
</excludes>
</testResource>
</testResources>
</build>