以下は私のプロジェクト構造です。私はプロパティを読み取るとで同じに置換するプラグインのmaven-読みプロパティを使用しようとしましたMaven Readプロパティプラグインは依存関係の値を代用しません
spring-version=3.1.0.RELEASE
test-proj
|_ src
|_main
| |_java
|_test
|_java
|_prop.properties
|_pom.xml
そして、私の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>com.sample</groupId>
<artifactId>test</artifactId>
<version>1.0-SNAPSHOT</version>
<build>
<!-- The resources tag will be used if prop file is under src location. -->
<!-- <resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources> -->
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>properties-maven-plugin</artifactId>
<version>1.0.0</version>
<executions>
<execution>
<phase>initialize</phase>
<goals>
<goal>read-project-properties</goal>
</goals>
<configuration>
<files>
<file>${basedir}/prop.properties</file>
</files>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<version>${spring-version}</version>
</dependency>
</dependencies>
</project>
Prop.propertiesファイルがあり春バージョンの場所。しかし、org.springframeworkの 'dependencies.dependency.version'というエラーが発生します。spring-beans:jarは有効なバージョンでなければなりませんが、 '$ {spring-version}'です。
私はMaven実行フェーズでinitializeではなくvalidateフェーズを使用しようとしました。しかし、まだ問題は残っています。コンテキストパスの代わりに、プロパティファイルの場所をD:\ test-proj \ prop.propertiesという絶対パスに置き換えようとしましたが、どちらもそれを助けませんでした。私はmavenコンパイラプラグインバージョン2.3.2を使用しています。何か不足していますか?他のプラグインでも依存関係のバージョンを置き換えることが可能かどうかを教えてください。
注:私はすべての私のプロジェクトは、モジュール化されて親子ポンポンの関係を使用することはできません、彼らはあなたが関係のない複数のプロジェクトのシェアの依存性バージョンが必要な場合は、使用することができ、同じ親
はBASEDIRフォルダに本当にあなたの特性です:すべてによって継承され、これのすべてのプロジェクトの両親のチャイルズを作ることが適切な設定(S)が含まれてい
super-parent
POMを確立しますか? basedirはプロジェクトのルートフォルダ、つまりpom.xmlファイルが存在する場所を表します。あなたのプロパティはおそらくリソースフォルダにあると思いますよね? – dambros@dambros私はそれをリソースと同様にルートディレクトリに置こうとしました。ご覧のように、prop.propertiesの現在の場所は、pom.xmlが利用可能なルートフォルダです。$ {basedir.properties} /prop.propertiesとして参照しています – Poppy
pom内の依存関係のバージョンを宣言しない特別な理由自体?それは余計に思われるので、ここでプラグインの使用を理解しようとしています – dambros