Java 在mvn安装后将.properties文件与.class一起包含在JAR中
假设我有一个我想用maven构建的项目。不幸的是,我的项目不尊重maven的默认布局。因此,我有两个源文件夹Java 在mvn安装后将.properties文件与.class一起包含在JAR中,java,maven-2,jar,package,Java,Maven 2,Jar,Package,假设我有一个我想用maven构建的项目。不幸的是,我的项目不尊重maven的默认布局。因此,我有两个源文件夹A&B,其中包含.properties文件和.java源文件 在mvn安装之后,我的.properties文件不会与我的.class生成的文件一起打包到jar中。如果有一种方法可以自动完成这项工作,您可能会建议使用标记来解决此类问题;这显然是可行的,我知道,但每次我都必须指定我的.properties文件的存储位置,以及我希望它们打包到JAR中的位置,这对我来说不是一个解决方案,因为我有多
A&B
,其中包含.properties
文件和.java
源文件
在mvn安装之后
,我的.properties
文件不会与我的.class
生成的文件一起打包到jar中。如果有一种方法可以自动完成这项工作,您可能会建议使用
标记来解决此类问题;这显然是可行的,我知道,但每次我都必须指定我的.properties
文件的存储位置,以及我希望它们打包到JAR中的位置,这对我来说不是一个解决方案,因为我有多个定期更新的源文件夹(数百个)
<resource>
<targetPath>com\vermeg\jar2</targetPath>
<filtering>true</filtering>
<directory>${basedir}/a/jar2</directory>
<includes>
<include>*.properties</include>
</includes>
<excludes>
<exclude>*.java</exclude>
</excludes>
</resource>
com\vermeg\jar2
真的
${basedir}/a/jar2
*.物业
*.爪哇
对于每个源文件夹,我都要在我的POM中写这个,有人知道一种更简单的自动方式吗
关于,通常,您可以使用Maven和来解决此类问题 例如,将pom编辑为:
<resource>
<targetPath>${myresources.targetpath}</targetPath>
<directory>${myresources.directory}</directory>
...
</resource>
${myresources.targetpath}
${myresources.directory}
...
并在命令行中使用-Dname=value
或在条件配置文件中定义myresources.directory
和myresources.targetpath
,或使用生成中可用的其他属性
如果您解释您的项目结构和/或条件以及它们与变量(targetPath和directory)的关系,我可能可以为您的问题提供更多帮助。请在父pom中指定一次,所有子项都应继承相同的设置…是否无法更改为使用标准Maven布局,所有属性都在src/main/resources下的并行“包”层次结构中?然后你不需要指定任何东西;将打包所有.properties文件 如果您这样做,您将需要启用筛选,因为它在默认情况下处于关闭状态。您可能需要再次显式声明资源目录,因为当您声明它们时,这似乎覆盖了您“免费”获得的资源目录 对于多个源文件夹,多模块Maven项目可能是最合适的,a和B是一些新父项目的子项目 这看起来可能需要做很多工作,但Maven的约定是相当合理的,如果你违背它们,这往往是一个痛苦的经历