有没有办法在Maven
很乐意理解的xml代码块中翻译这种人类语言?
Hey Maven,看你是一个很好的依赖管理系统。我正在开发一个旨在部署在Wildfly 10.1.0上的JavaEE项目。请将Wildflys父BOM http://repo1.maven.org/maven2/org/wildfly/wildfly-parent/10.1.0.Final/wildfly-parent-10.1.0.Final.pom中指定的所有库放在编译时类路径上,并将它们视为Wildfly在运行时提供的。请不要打扰我列出项目pom文件的依赖项部分中的每个引用的工件。谢谢Maven,你太酷了。
澄清: 据我所知,导入我的pom文件的dependencyManagement部分中的bom文件只会让我无法指定每个工件的版本号,但我仍然需要声明每个artifactID和groupID。
这确实在这里讨论How to use BOM file with Maven 但在这个答案中也说明了:
然后您不必指定依赖项的version属性。
我更愿意只声明我使用的是wildfly,然后能够使用所有客户端库而不声明任何其他依赖项。
但我必须承认,我有一种想念错过的感觉。应该有一个简单的方法来做到这一点。
答案 0 :(得分:2)
如果您希望将另一个pom
中的所有内容设置为依赖项,并且您可以在pom中指定。野生蝇10.1.0.Final的 minimal pom包括一切似乎如下:
<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>wft</groupId>
<artifactId>wft</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>war</packaging>
<name>wft</name>
<description>wft</description>
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<failOnMissingWebXml>false</failOnMissingWebXml>
</properties>
<dependencies>
<dependency>
<groupId>org.wildfly</groupId>
<artifactId>wildfly-spec-api</artifactId>
<version>10.1.0.Final</version>
<type>pom</type>
<scope>provided</scope>
</dependency>
</dependencies>
</project>
但是我仍然建议像wildfly自己做的那样去做,就是把BOM
放在depencency management
部分并根据需要声明工件。为什么?我不知道除了阅读起来更干净,并且可能更容易编译和构建maven / java。