当前位置: 首页 > 知识库问答 >
问题:

通过资源筛选访问配置文件属性

周苑博
2023-03-14

我有这个pom结构,我正在尝试访问属性hub。p,在构建助手maven插件中设置,该插件位于配置文件内部并存储端口号。端口是在我进入控制台时分配的,就像这样为集线器保留端口59831。p。我无法通过另一个属性中心的资源筛选访问此内容。端口,在属性部分中定义

<project xmlns="http://maven.apache.org/POM/4.0.0" 
...

<build>
 ....
           <resources>
                     <resource>
                            <directory>src/main/resources</directory>
                            <filtering>true</filtering>

                        </resource>
            </resources>  
  ...
</build>
        <properties>
        
             <hub.port>${hub.p}</hub.port>
        </properties>

       <dependencies>
        ...
      </dependencies>

  <profiles>
  
        <profile>
            <id>acceptanceTests</id>
        <build>
           ...
            <plugins>
             ....
            <plugin>
              <groupId>org.codehaus.mojo</groupId>
              <artifactId>build-helper-maven-plugin</artifactId>
               <executions>
                <execution>
                 <id>reserve-server-port</id>
                   <goals>
                   <goal>reserve-network-port</goal>
                  </goals>
                <phase>process-resources</phase>
                 <configuration>
                  <portNames>
                     <portName>hub.p</portName>
              </portNames>
            </configuration>
          </execution>
        </executions>
      </plugin>
     </plugins>
      ....
    </profile>
  </profiles>
</project 

src/test/资源中,我有pom.properties属性文件,它有这个

hubPort=${hub.port}

我就像这样进入财产

            Properties properties = new Properties();
            
            ClassLoader loader = Thread.currentThread().getContextClassLoader();
            InputStream inputStream = loader.getResourceAsStream("pom.properties"); 
            properties.load(inputStream);
            String portForHub = properties.getProperty("hubPort");
            System.out.println("hubport..."+portForHub);

但它会打印

<代码>轮毂${集线器端口}

我提到了这个问题,但我无法访问该物业。

共有1个答案

佟高澹
2023-03-14

下面对我有用。我没有进行资源过滤,而是将${hub. p}直接传递给

在故障保护插件配置中

                 <configuration>
                    <parallel>methods</parallel>
                     <threadCount>4</threadCount>
                    <useUnlimitedThreads>true</useUnlimitedThreads>
                       <systemPropertyVariables>
                            <hub.port>${hub.p}</hub.port>                         
                      </systemPropertyVariables>
                  </configuration>

然后在测试中

<代码>系统。getProperty(“集线器端口”)

这个问题有帮助

 类似资料:
  • 我有以下pom.xml: 注意,上的元素被注释掉了 在中还有以下内容 因此,我希望Maven做的只是用替换,除非开发配置文件被激活,否则我希望Maven用替换 当我运行时,它将值设置为。很好,资源筛选工作正常。 但是,当我运行时,它将值设置为 如果取消对配置文件上的元素的注释并运行,则会将设置为 我甚至运行了让它输出活动的配置文件名称,并且在上面的两种情况下,它都表示开发配置文件是活动的,但是如果

  • ServletContext接口定义了三个方法来访问当前Web应用程序的资源文件,这三个方法如下: l getResourcePaths方法 该方法返回指定Web应用程序目录中的所有子目录和文件,这些返回的目录文件不包括嵌套目录和文件。这些返回的子目录和文件都封装在该方法返回的一个Set对象中。getResourcePaths方法的定义如下: public Set getResourcePaths

  • 我正在运行一个简单的maven项目(Maven3.3.9),其中包含配置文件和资源筛选。似乎总是在默认配置文件上进行筛选。 src/main/filters(默认)中有两个配置文件:config-dev.properties和config-prod.properties(仅包含一个变量application.env=development application.env=production 和s

  • 在新的Laravel资源类中,您可以根据自己喜欢的任何内容删除属性。 如果您想返回许多项目,您可以使用该功能 但这不允许您在一个位置添加元数据。输入一个集合,太好了,这是一个很好的格式,能够添加元数据的许多项目。但是,您不能做的是筛选集合,您必须像使用资源一样隐藏属性。我能看到的唯一办法就是 我是不是错过了什么?对于资源收集来说,这似乎是一个被忽视的巨大能力

  • 我正在尝试使用maven配置文件实例化hibernate配置文件。我的配置文件位于下,在pom文件中,我标记了该文件夹以用于资源过滤。有趣的是,我可以从属性文件中加载相同的属性,而hibernate在解析配置文件时抛出异常。这是我正在使用的代码示例。 POM-资源筛选 文件结构 资源hibernate.cfg.xml

  • 问题内容: 我已经在我的jsf应用程序中实现了spring安全性。一切正常,除了静态资源需要身份验证。这是我的配置 经过一些谷歌搜索,大多数解决方案是添加MVC资源标签。 我发现了类似的注释,并为此添加了一个配置类 但是仍然静态资源需要身份验证。有关如何进行此工作的一些帮助将非常有用。 注意:我的资源位于中。问题是如果用户未登录,则css,js的效果不会显示在登录页面中。用户登录一次,登录后进入登