0

我们指定了一堆的系统属性,在我们的Maven编译器插件定义的pom.xml中:Java:Maven存储系统属性在编译的jar中的pom.xml中设置的位置在哪里?

<build> 
    <plugins> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-compiler-plugin</artifactId> 
      <version>2.3.2</version> 
      <configuration> 
       <source>1.6</source> 
       <target>1.6</target> 
       <encoding>${project.build.sourceEncoding}</encoding> 

       <systemProperties> 
        <systemProperty> 
         <key>aKey</key> 
         <value>aValue</value> 
        </systemProperty> 
       </systemProperties> 
      <!-- ....etcetera.... --> 

在执行罐子

如何Maven的创建这个自动加载这些自动加载系统属性的行为?我想了解这种行为的实际执行情况。

回答

0

这不是我期望的行为(除非我误解你)。编译时系统属性不应该在运行时持久化。

我创建了一个基本的maven项目,它只是打印出系统属性,并且它不包含在插件配置中指定的系统属性。

System.getProperties().getProperty("aKey")返回null即使编译器插件配置与您的相同。

任何其他可能会有影响的插件运行?你如何访问系统属性?

+0

我们确信它确实存在,因为我们有一个项目,其中的属性按照我的示例指定,并且代码在执行jar时将其视为设置为“true”。搜索项目 - 实际上是对它进行标记 - 不会显示关键字的其他实例。我们部署的环境没有在任何加载的项目文件中定义它。 – KomodoDave 2012-02-02 14:27:04