为了账号安全,请及时绑定邮箱和手机立即绑定

将 JDK 参数正确传递到 Maven pom 文件中

将 JDK 参数正确传递到 Maven pom 文件中

缥缈止盈 2023-07-28 15:30:04
因为我需要在 HTTP 请求中自定义 Host 标头,所以我需要使用以下参数启动我的 Spring Boot Java 应用程序(自 JDK 12 起可用):java -jar -Djdk.httpclient.allowRestrictedHeaders=host application.jar但是如何将它传递到 maven pom.xml 文件中,以便能够在由于缺少此标志而失败的测试期间使用此参数?我尝试按以下方式使用 maven-compiler-plugin:<plugin>    <groupId>org.apache.maven.plugins</groupId>    <artifactId>maven-compiler-plugin</artifactId>    <configuration>        <compilerArgs>            <arg>-Djdk.httpclient.allowRestrictedHeaders=host</arg>        </compilerArgs>    </configuration></plugin>但这是错误的:错误:无效标志:-Djdk.httpclient.allowRestrictedHeaders=host以下示例也不起作用:-jdk.httpclient.allowRestrictedHeaders=主机jdk.httpclient.allowRestrictedHeaders=主机所以我尝试使用 spring-boot-maven-plugin<plugin>    <groupId>org.springframework.boot</groupId>    <artifactId>spring-boot-maven-plugin</artifactId>    <configuration>        <jvmArguments>-Djdk.httpclient.allowRestrictedHeaders=host</jvmArguments>    </configuration></plugin>但它也不起作用,因为在这种情况下该标志被忽略,并且当我运行 mvn test 时出现限制错误。当我使用此标志运行 java 时,不会发生这种情况。
查看完整描述

1 回答

?
ITMISS

TA贡献1871条经验 获得超8个赞

您似乎配置了错误的插件。您说您需要“能够在测试期间使用此参数”,这意味着您应该配置Maven Surefire Plugin。

也许你可以使用systemProperties

 <plugin>

        <groupId>org.apache.maven.plugins</groupId>

        <artifactId>maven-surefire-plugin</artifactId>

        <version>3.0.0-M3</version>

        <configuration>

          <systemProperties>

            <property>

              <name>propertyName</name>

              <value>propertyValue</value>

            </property>

            [...]

          </systemProperties>

        </configuration>

      </plugin>

或argLine方法:


<argLine>-Djava.endorsed.dirs=...</argLine>


查看完整回答
反对 回复 2023-07-28
  • 1 回答
  • 0 关注
  • 86 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信