Java 使用gradle任务在jar中设置变量值
我有一个客户端和服务器架构 客户端是一个可运行的Java 使用gradle任务在jar中设置变量值,java,gradle,jar,Java,Gradle,Jar,我有一个客户端和服务器架构 客户端是一个可运行的.jar文件,使用以下Gradle任务构建: jar { archiveName = "app.jar" from sourceSets.main.output.classesDir include '**/*.class' manifest { attributes 'Main-Class': 'com.bobbyrne01.app.Main' } exclude 'META-INF
.jar
文件,使用以下Gradle任务构建:
jar {
archiveName = "app.jar"
from sourceSets.main.output.classesDir
include '**/*.class'
manifest {
attributes 'Main-Class': 'com.bobbyrne01.app.Main'
}
exclude 'META-INF/*.RSA', 'META-INF/*.SF','META-INF/*.DSA'
}
我正在更改此客户端的身份验证方式
问题是,我想指定客户端在构建过程中应该使用哪种身份验证方法
因此,当用户下载.jar
时,他们只需运行它,在构建过程中激活的任何身份验证方法都将在.jar
中激活
设置此authenticationType
变量/标志的最佳方法是什么
对于服务器,有一个用于身份验证的接口和许多实现不同身份验证方法的类。在构建服务器时,我指定了一个gradle属性,该属性被设置为docker映像上的环境变量。
因此,在运行时,服务器使用反射来确定实例化哪个身份验证类
但是我不确定如何在jar中设置类似的值。使用一个属性文件,该文件包含一个值,允许在运行时决定要使用哪个身份验证机制 定义为
authentication=${authentication} or
或
在源属性文件中。并在标准的processResources
gradle任务(类型为Copy
)中使用expand或filter,以将占位符替换为要使用的实际值
请参阅和。使用包含一个值的属性文件,该值允许在运行时决定要使用的身份验证机制 定义为
authentication=${authentication} or
或
在源属性文件中。并在标准的processResources
gradle任务(类型为Copy
)中使用expand或filter,以将占位符替换为要使用的实际值
见和