我有一个问题。
在pom.xml中,依赖包含在两个地方。
一个地方可以在<project>
代码中,另一个地方可以在<plugin>
代码中。
我认为标签中的依赖关系只与插件有关? 这是对的吗?
提前感谢:)
<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/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<artifactId>clustered-queue</artifactId>
<packaging>jar</packaging>
<name>HornetQ JMS Clustered Queue Example</name>
<dependencies>
<dependency>
<groupId>org.hornetq.examples.jms</groupId>
<artifactId>hornetq-jms-examples-common</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.jboss.spec.javax.jms</groupId>
<artifactId>jboss-jms-api_1.1_spec</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.hornetq</groupId>
<artifactId>hornetq-maven-plugin</artifactId>
<executions>
<execution>
<id>start1</id>
<goals>
<goal>start</goal>
</goals>
<configuration>
<jndiPort>1199</jndiPort>
<jndiRmiPort>1198</jndiRmiPort>
<hornetqConfigurationDir>${basedir}/target/classes/hornetq/server1</hornetqConfigurationDir>
<fork>true</fork>
<systemProperties>
<property>
<name>udp-address</name>
<value>${udp-address}</value>
</property>
</systemProperties>
</configuration>
</execution>
</executions>
<dependencies>
<dependency>
<groupId>org.hornetq</groupId>
<artifactId>hornetq-core-client</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.hornetq</groupId>
<artifactId>hornetq-server</artifactId>
<version>${project.version}</version>
</dependency>
</dependencies>
<configuration>
<waitOnStart>false</waitOnStart>
</configuration>
</plugin>
</plugins>
</build>
</project>
答案 0 :(得分:7)
<dependencies>
下的<project>
是我们工件的依赖列表,Maven将在编译时下载并链接依赖项。有关详细信息,请参阅POM Reference: Dependencies和Introduction to the Dependency Mechanism。
<dependencies>
下的<plugin>
将作为其所属插件的依赖项应用。 这样做的好处是可以通过exclusions
删除未使用的运行时依赖项来更改插件 的依赖关系列表,或者通过更改所需依赖项的版本。有关详细信息,请参阅POM Reference: Plugins和Guide to Configuring Plug-ins。
我希望这可能有所帮助。