我是Maven的新手,如果我的问题很幼稚,请谅解。我有一个使用shade插件创建可运行jar文件的Maven Eclipse项目,并希望在构建过程中包含src/main/resources文件夹下的某个属性文件(如果我术语不对,请指出,我确实缺乏经验)。我的项目中有多个属性文件,例如config1.properties和config2.properties。每次构建都只需要其中一个文件,取决于生成的jar文件所需的功能。由于与代码兼容性,请将属性文件重命名为“defaultconfig.properties”。
最终生成的jar文件(针对每个不同的属性文件)将作为单独的cron作业运行。我计划使用不同的Jenkins项目将可运行的jar文件部署到特定的服务器上,具体取决于属性文件所配置的任务(这一点我比较确定)。这些cron作业将在这些服务器上运行。
我的问题如下:
1)逻辑决定应该把哪个属性文件包含在可运行的jar文件里?
例如,假设我有config1.properties(指定使用变量var1 = blah,var2 = blip和var3 = boink)和config2.properties(指定使用变量var1 = duh,var2 = dip和var3 = doink)。我在哪里告诉Maven要使用这两个文件中的哪一个进行特定的构建?
2)我应该传递一个参数来告诉Maven要使用哪个属性文件吗?如果是这样,我应该传递给谁呢?这是可以在Jenkins项目中配置的吗?(即使只是一些基本阅读材料也会对我有所帮助,因为我对Maven和Jenkins都不熟悉。)
以下是我的pom.xml文件的相关部分:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>2.2</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<transformers>
<transformer
implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<mainClass>com.foo.dashboard.bar.Runner</mainClass>
</transformer>
</transformers>
<finalName>FooBar</finalName>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
我已经尝试使用IncludeResourceTransformer重命名属性文件,但不确定如何包含基于所需jar文件功能切换属性文件的逻辑。
谢谢。