У меня есть файл свойств со следующим
junit.version=3.8.1
dbcp.version=5.5.27
oracle.jdbc.version=10.2.0.2.0
Я пытаюсь прочитать эти свойства из моего файла pom, как показано ниже
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>${junit.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>dbcp</groupId>
<artifactId>dbcp</artifactId>
<version>${dbcp.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.oracle</groupId>
<artifactId>ojdbc14</artifactId>
<version>${oracle.jdbc.version}</version>
<scope>provided</scope>
</dependency>
и настройка плагина
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>properties-maven-plugin</artifactId>
<executions>
<!-- Associate the read-project-properties goal with the initialize phase, to read the properties file. -->
<execution>
<phase>initialize</phase>
<goals>
<goal>read-project-properties</goal>
</goals>
<configuration>
<files>
<file>../live.properties</file>
</files>
</configuration>
</execution>
</executions>
</plugin>
Я обнаружил, что когда я запускаю mvn clean install, он не находит свойства, вместо этого появляются следующие ошибки:
'dependencies.dependency.version' for junit:junit:jar must be a valid version but is '${junit.version}'. @ line 23, column 16
'dependencies.dependency.version' for dbcp:dbcp:jar must be a valid version but is '${dbcp.version}'. @ line 31, column 12
'dependencies.dependency.version' for com.oracle:ojdbc14:jar must be a valid version but is '${oracle.jdbc.version}'. @ line 37, column 13
Вышеуказанные сбои появляются в ситуациях, когда я ссылаюсь на свойство, когда объявляю зависимость. Я обнаружил, что в некоторых других ситуациях свойство читается из файла.
Например, это работает, если я использую свойство в теге версии проекта (не версия зависимости)
Похоже, что свойство не читается из файла, если на него ссылаются из объявления зависимости, а читается, если на него ссылаются из других источников Есть идеи?