【问题标题】:Maven Command Line Args in the settings.xmlsettings.xml 中的 Maven 命令行参数
【发布时间】:2016-07-25 10:19:10
【问题描述】:

下午好,

我正在尝试找出是否有可能将 Settings.xml 中的命令行参数外包。

我不能使用 MAVEN_OPTS Env-Var 和 .mavenrc 文件,但我需要每个项目中的设置。重要的是不要使用安装后未包含的插件(与存储库的连接需要这些设置)。

设置:

 -Djavax.net.ssl.trustStore=VALUE
 -Djavax.net.ssl.trustStorePassword=VALUE
 -Djavax.net.ssl.keyStore=VALUE
 -Djavax.net.ssl.keyStorePassword=VALUE
 -Djavax.net.ssl.keyStoreType=VALUE
 -Dmaven.wagon.http.ssl.insecure=VALUE
 -Dmaven.wagon.http.ssl.allowall=VALUE
 -Dmaven.wagon.http.ssl.ignore.validity.dates=VALUE

我希望我没有忽略一些显而易见的事情...... 提前致谢, 定位器

EDIT-1:Maven 版本:Apache Maven 3.3.9 (bb52d8502b132ec0a5a3f4c09453c07478323dc5; 2015-11-10T17:41:47+01:00)

EDIT-2:我试过这样,但它不起作用:<javax.net.ssl.trustStore>VALUE</javax.net.ssl.trustStore>

【问题讨论】:

  • Afaik settings.xml 与实际运行任何 maven 作业无关,只是设置 maven 环境...
  • 你使用哪个 Maven 版本?
  • Apache Maven 3.3.9 (bb52d8502b132ec0a5a3f4c09453c07478323dc5; 2015-11-10T17:41:47+01:00)

标签: java xml maven repository


【解决方案1】:

如果您想为 Maven 本身使用特殊的配置元素(例如:-T3 ..),最好使用${maven.projectBasedir}/.mvn/maven.config。此外,您可以通过 ${maven.projectBasedir}/.mvn/jvm.config 为 JVM 使用东西,这意味着在您的情况下,您应该使用具有以下内容的 jvm.config

-Djavax.net.ssl.trustStore=VALUE
-Djavax.net.ssl.trustStorePassword=VALUE
-Djavax.net.ssl.keyStore=VALUE
-Djavax.net.ssl.keyStorePassword=VALUE
-Djavax.net.ssl.keyStoreType=VALUE
-Dmaven.wagon.http.ssl.insecure=VALUE
-Dmaven.wagon.http.ssl.allowall=VALUE
-Dmaven.wagon.http.ssl.ignore.validity.dates=VALUE

因此,您可以将其放入您的项目中并在您的项目中签入。所以这使得.mavenrcMAVEN_OPTS 变得多余。这在Release Notes for Maven 3.3.1 中有记录。

但我不得不说您喜欢设置上述系统属性,我的印象是您想忽略 https 连接中的证书,这是没有意义的。

【讨论】:

  • 感谢您的担心,但最后3个属性仅用于测试。你的回答真的很好!是否可以为所有项目设置属性?
  • 如果最后一个仅用于测试,那么您应该适当配置 maven-surefire-plugin ....如果您不想让它们用于所有项目,请使用 MAVEN_OPTS.....
  • 感谢您快速准确的回答。
  • 我尝试了几种方法,但最后是MAVEN_OPTS。见这里:maven.apache.org/guides/mini/guide-repository-ssl.html
  • @Barny:我试过 maven.apache.org/guides/mini/guide-repository-ssl.htmll 。我创建了一个名为 mavenrc_pre.bat 的文件。但是,当我在命令行中构建项目时,由于 MAVEN_OPTS 无法识别为内部或外部命令,因此出现错误。我在用户变量中设置了 MAVEN_OPTS,重新启动系统并尝试。但我仍然得到同样的错误。任何想法,我哪里出错了?
【解决方案2】:

看来我可以在 Maven 设置配置文件中使用属性定义所有参数: https://maven.apache.org/settings.html#Profiles

【讨论】:

  • 我试过这样,但它不起作用。
  • 也许他们可以在新版本中解决这个问题...
最近更新 更多