Java 在pom.xml中外部化属性的最佳方法是什么
我有几个mvn项目的属性几乎相同。什么是将这些属性外部化的最好方法,这样我就不会复制它们了 首先是财产:Java 在pom.xml中外部化属性的最佳方法是什么,java,maven,maven-3,Java,Maven,Maven 3,我有几个mvn项目的属性几乎相同。什么是将这些属性外部化的最好方法,这样我就不会复制它们了 首先是财产: <properties> <!-- LOMBOK version --> <lombok.version>1.16.4</lombok.version> <!-- LOGGING versions --> <slf4j.version>1.6.4</slf4j.version>
<properties>
<!-- LOMBOK version -->
<lombok.version>1.16.4</lombok.version>
<!-- LOGGING versions -->
<slf4j.version>1.6.4</slf4j.version>
<log4j.version>1.2.16</log4j.version>
<!-- MAVEN COMPILER PLUGIN version -->
<maven-compiler-plugin.version>3.3</maven-compiler-plugin.version>
<maven-compiler-plugin.source.version>1.7</maven-compiler-plugin.source.version>
<maven-compiler-plugin.target.version>1.7</maven-compiler-plugin.target.version>
<maven-compiler-plugin.compilerVersion>1.7</maven-compiler-plugin.compilerVersion>
</properties>
1.16.4
1.6.4
1.2.16
3.3
1.7
1.7
1.7
然后,从属关系管理:
<dependencyManagement>
<dependencies>
<!-- LOMBOK DEPENDENCIES -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>${lombok.version}</version>
</dependency>
<!-- LOGGING DEPENDENCIES -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>${slf4j.version}</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>${slf4j.version}</version>
</dependency>
<!-- LOGGING DEPENDENCIES - LOG4J -->
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>${log4j.version}</version>
</dependency>
</dependencyManagement>
org.projectlombok
龙目
${lombok.version}
org.slf4j
slf4j-log4j12
${slf4j.version}
org.slf4j
slf4j api
${slf4j.version}
log4j
log4j
${log4j.version}
您可以使用所有子项目都使用的父项目。将公共属性移动到父maven项目中,然后将类似的内容添加到子项目中:
com.parent
父项目
1.
什么类型的属性?你能举一些例子吗?我打赌像${org.springframework.version}这样的东西对我来说也是,但这样做是错误的。出于这样的目的,存在dependencyManagement…而属性是错误的方式。@khmarbaise是的,我知道,但我不希望每个项目都定义DependencyManager或pluginManagement部分。为什么每个项目都定义DependencyManager或pluginManagement部分?插件管理部门在公司pom中只应被罚款一次。dependencyManagement部分可以在BOM中定义(并通过导入范围使用)…顺便说一句:您应该使用maven.compiler.target
和maven.compiler.source
而不是给定的值,因为这些是默认属性。见