我想通过JRE版本切换pom.xml
中的元素。现在,如果我使用JRE 7构建,我总是按如下方式切换注释:
<dependency>
<groupId>org.apache.derby</groupId>
<artifactId>derby</artifactId>
<!-- If using JRE 7 -->
<!--<version>10.12.1.1</version>-->
<!-- If using JRE 8, no need to set version -->
</dependency>
...
<jvmArguments>
<!-- If using JRE 7 -->
<!-- -XX:MaxPermSize=64m -Xloggc:logs/gc.log -->
<!-- If using JRE 8 -->
-XX:MaxMetaspaceSize=64m -Xloggc:logs/gc_%p_%t.log
</jvmArguments>
按JRE版本切换元素的最佳方法是什么?
答案 0 :(得分:3)
一种方法是使用Maven配置文件(有关详细信息,请参阅this)。这背后的想法是使用属性而不是具体值,并使用特定JRE配置文件中的不同值初始化它们。
要激活特定的配置文件,请将 -P 附加到maven命令(例如mvn -Pjre7包)。
您可以在下面找到两个配置文件的可能示例定义。
<project>
...
<profiles>
<!-- JRE 7 specific config elements -->
<profile>
<id>jre7</id>
<properties>
<jvm.args>-XX:MaxPermSize=64m -Xloggc:logs/gc.log</jvm.args>
<derby.version>10.12.1.1</derby.version>
</properties>
</profile>
<!-- JRE 8 specific config elements -->
<profile>
<id>jre8</id>
<!-- activates jre8 by default -->
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<jvm.args>-XX:MaxMetaspaceSize=64m -Xloggc:logs/gc_%p_%t.log</jvm.args>
<derby.version>USE_REQUIRED_JRE8_DERBY_VERSION</derby.version>
</properties>
</profile>
</profiles>
<dependencies>
...
<dependency>
<groupId>org.apache.derby</groupId>
<artifactId>derby</artifactId>
<version>${derby.version}</version>
</dependency>
...
</dependencies>
...
<jvmArguments>
${jvm.args}
</jvmArguments>
<project>
答案 1 :(得分:2)
我建议让maven handle that on it's own这意味着定义一个这样的个人资料:
# Set up modules and stimuli
from psychopy import visual, event
win = visual.Window()
stim = visual.TextStim(win, text='I\'m a stimulus!')
feedback = visual.TextStim(win, text='')
for frame in range(5*60): # Run for 5 seconds on a 60 Hz monitor
# Change stimulus dynamically
stim.pos += (0.001, 0.002) # Change position
stim.color -= 0.005 # Make darker
# Feedback based on response
key = event.getKeys()
if key:
feedback.text = 'Last key was %s' %key[0]
# Show it
stim.draw()
feedback.draw()
win.flip()