Java 如何管理包含特定于不同操作系统的文件的项目?
我们有一个项目,最初是在linux平台上开发的,我们想定制它并在windows平台下使用它。它托管在github上。关于如何管理在两个平台之间共享但对每个平台都有一些特殊性的文件的任何建议。例如,包含路径、环境变量等的配置文件Java 如何管理包含特定于不同操作系统的文件的项目?,java,git,maven,github,Java,Git,Maven,Github,我们有一个项目,最初是在linux平台上开发的,我们想定制它并在windows平台下使用它。它托管在github上。关于如何管理在两个平台之间共享但对每个平台都有一些特殊性的文件的任何建议。例如,包含路径、环境变量等的配置文件 谢谢你的建议 既然您已经标记了maven,这里就是解决方案,请使用配置文件来区分linux和windows <profiles> <profile> <id>linux</id> &l
谢谢你的建议 既然您已经标记了maven,这里就是解决方案,请使用配置文件来区分linux和windows
<profiles>
<profile>
<id>linux</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<envName>linux</envName>
</properties>
</profile>
<profile>
<id>windows</id>
<properties>
<envName>windows</envName>
</properties>
</profile>
</profiles>
<build>
<outputDirectory>${project.basedir}/target/classes</outputDirectory>
<sourceDirectory>${project.basedir}/src/main/java</sourceDirectory>
<resources>
<resource>
<directory>${basedir}/src/main/java</directory>
<includes>
<include>**/*.class</include>
</includes>
</resource>
<resource>
<targetPath>${project.basedir}/target/classes/configurations</targetPath>
<directory>${basedir}/src/main/resources/configurations/${envName}</directory>
</resource>
</resources>
<plugins>
</build>
linux
真的
linux
窗户
窗户
${project.basedir}/target/classes
${project.basedir}/src/main/java
${basedir}/src/main/java
**/*.类
${project.basedir}/target/classes/configurations
${basedir}/src/main/resources/configurations/${envName}
假设您有一些特定于操作系统的配置文件。当您希望基于enivronment构建时,您希望将文件复制到类内的configurations目录,上面的代码片段将复制该文件。为此,您需要在
src/main/resoruces/configurations/linux
和src/main/resources/configurations/windows
中创建两个目录。当您运行maven时,您需要使用类似mvn package-Plinux或mvn package-Pwindows的配置文件。谢谢您的建议,我一定会考虑的。但我的问题更多的是关于gitHub而不是maven。问题是,对于这两个平台,它们共享相同的配置文件,其中包含文件路径的配置参数。如上所述,我们正在定制一个用于windows平台的项目。我对Github一无所知,我相信它是SCM,而不是构建脚本。因此,我希望您的文件夹结构保持与maven相同,因此,如果您使用maven,则需要如上所述创建两个目录。您可以将代码保存到磁盘并使用配置文件。