当前位置: 首页 > 面试题库 >

如何使用properties-maven-plugin?

公西修文
2023-03-14
问题内容

我想使用properties-maven-plugin。我阅读了用法http://mojohaus.org/properties-maven-
plugin/usage.html
,但是它对我不起作用。

我创建了一个非常简单的项目对其进行测试。这是我的pom.xml:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>test</groupId>
  <artifactId>MavenTest</artifactId>
  <version>1.0.0</version>
  <name>MavenTest</name>

  <properties>
    <prop1>2.2</prop1>
  </properties>

  <dependencies>
    <dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-api</artifactId>
            <version>${log4j.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-core</artifactId>
            <version>${log4j.version}</version>
        </dependency>
  </dependencies>

  <build>
    <plugins>
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>properties-maven-plugin</artifactId>
                <version>1.0-alpha-2</version>
                <executions>
                    <execution>
                        <phase>initialize</phase>
                        <goals>
                            <goal>read-project-properties</goal>
                        </goals>
                        <configuration>
                            <files>
                                <file>${basedir}/my.properties</file>
                            </files>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    <pluginManagement>
        <plugins>
            <!--This plugin's configuration is used to store Eclipse m2e settings only. It has no influence on the Maven build itself.-->
            <plugin>
                <groupId>org.eclipse.m2e</groupId>
                <artifactId>lifecycle-mapping</artifactId>
                <version>1.0.0</version>
                <configuration>
                    <lifecycleMappingMetadata>
                        <pluginExecutions>
                            <pluginExecution>
                                <pluginExecutionFilter>
                                    <groupId>
                                        org.codehaus.mojo
                                    </groupId>
                                    <artifactId>
                                        properties-maven-plugin
                                    </artifactId>
                                    <versionRange>
                                        [1.0-alpha-2,)
                                    </versionRange>
                                    <goals>
                                        <goal>
                                            read-project-properties
                                        </goal>
                                    </goals>
                                </pluginExecutionFilter>
                                <action>
                                    <ignore></ignore>
                                </action>
                            </pluginExecution>
                        </pluginExecutions>
                    </lifecycleMappingMetadata>
                </configuration>
            </plugin>
        </plugins>
    </pluginManagement>
  </build>
</project>

如果我运行mvn compile或mvn install,则结果为:

[ERROR] The build could not read 1 project -> [Help 1]
org.apache.maven.project.ProjectBuildingException: Some problems were encountered while processing the POMs:
[ERROR] 'dependencies.dependency.version' for org.apache.logging.log4j:log4j-api:jar must be a valid version but is   '${log4j.version}'. @ line 16, column 13

“ my.properties”文件包含以下内容:

 log4j.version=2.2

如此处所述:mojohaus

如果我使用在pom.xml中定义的prop1属性,则一切正常。

所以我做错了什么?


问题答案:

他们的官方回答是不支持使用read-project-
properties设置依赖项的版本:https : //github.com/mojohaus/properties-maven-
plugin/issues/26

这行不通,也不是属性maven插件的目的,此外,从文件中读取属性以定义依赖项版本的好处是什么?



 类似资料:
  • 问题内容: 我在项目中的Maven中有一个根模块和子模块。我正在尝试使用龙目岛。我已经添加了 根pom.xml。在子模块中,我有一个带有Lombok批注的类。当我尝试建立项目时,我得到了很多 找不到标志 我试图在这里打电话给getters和setters。 我试图在根pom和子pom中使用具有相同版本(1.16.12)的lombok -maven-plugin 以及delombok,并将带注释的类

  • 问题内容: 当我使用命令:mvn test时,maven使用主要资源而不是src / test / resources中的测试资源。 我如何才能使Maven使用测试资源而不是主要资源? 编辑:我使用Classloader查找我的资源。Classloader可以从我的src / test / resources目录中找到资源,但是它首先在src / main / java中查找该资源。 还是在运行将

  • 使用log4j2,我想替换日志消息中的一些字符串(比如用bar替换foo)。在xml配置中,我可以使用以下配置,它可以正常工作。 但我不得不在项目中使用属性文件,而不是使用XML,所以我尝试了以下方法 我得到了这样的错误: 如何在属性文件和log4j2中表示replace,是否可以将xml配置中的所有内容转换为属性配置?我使用的是log4j-api-2.14.0。jar和log4j-core-2.

  • 出于某种原因,它对我不起作用。我做错了什么? pom.xml sampleController.java

  • 问题内容: 我是Maven和Checkstyle的新手,所以请保持礼貌:)。 我设法将maven与checkstyle插件一起使用,并且可以在代码上创建报告。但是我真正想要拥有的是,如果样式检查有任何错误,我可以停止Maven的构建过程。 到目前为止,我的pom.xml如下所示: 我如何在这里达到目标?我们的团队希望有严格的编码风格标准,所以我必须使用它。 问题答案: 为了实现所需的功能,除了报告