0

关于这个问题有很好的问题和答案,但这些选项对我不起作用。

我想将变量传递给应用程序上下文:

<bean class="blah.blah.Blah" id="blah">
    <property name="first" value="${first.property}"/>
    <property name="second" value="${second.property}"/>
</bean>

我在 Maven 的settings.xml文件中有以下内容:

<profiles>
    <profile>
      <id>profileId</id>
      <activation>
          <activeByDefault>true</activeByDefault>
      </activation>
      <properties>
          <first.property>first value</first.property>
          <second.property>second value</second.property>
      </properties>

我尝试了这个选项(这有点奇怪),它没有给出任何结果。比我添加了这个插件:

<plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>properties-maven-plugin</artifactId>
    <version>1.0-alpha-2</version>
    <executions>
      <execution>
        <phase>process-resources</phase>
        <goals>
          <goal>write-project-properties</goal>
        </goals>
        <configuration>
          <outputFile>
            src/main/resources/maven.properties
          </outputFile>
        </configuration>
      </execution>
    </executions>
</plugin> 

之后项目中没有任何maven.properties文件。如果我创建了空文件,则其中没有任何内容。我试图用 重复这些步骤-PprofileId,但没有帮助。有人可以提供一个工作代码片段或告诉我我在这里想念什么吗?提前致谢。

更新:我错了,properties-maven-plugin工作正常。

4

1 回答 1

1

从您的问题中我不清楚 - 但是如果您尝试运行mvn -PprofileId resources:resources属性插件将不会运行,因为该命令正在执行单个目标,而不是 Maven 生命周期阶段。如果你跑步会发生什么mvn -PprofileId process-resources

另一个问题,是否还有其他配置文件处于活动状态? activeByDefault并不意味着“始终活跃”。根据Maven 文档“当 POM 中的配置文件在命令行上或通过其激活配置激活时,默认情况下处于活动状态的所有配置文件都会自动停用。” 因此,如果您有另一个配置文件处于活动状态,profileId则不会。

尝试从该配置文件中删除激活块并运行mvn -PprofileId process-resources.

于 2012-07-02T14:43:57.483 回答