Maven 不同的外形激活方法会产生不同的结果?
我已经使用maven大约两年了,但我认为我并不完全理解maven中的概要文件,特别是当我遇到以下问题时 我有一个maven项目,包含三个模块:secweb父模块、secweb服务模块和secweb服务模块,secweb服务模块依赖于SpringWebMVC,而secweb服务模块依赖于secweb服务模块 问题是: 1) 当我使用“mvn clean install-Dinclude”时,它工作得很好,spring-mvc.jar可以在secweb-web.war中找到 2) 当我使用“mvn干净安装-Pinclude jar”时,它不起作用,而且在secweb-web.war中找不到spring-mvc.jar 有人知道为什么吗?当我使用个人资料时,有什么我必须注意的吗 (我知道我可以定义依赖范围,这个项目在这里只是为了演示不同配置文件激活方法的不同结果)Maven 不同的外形激活方法会产生不同的结果?,maven,Maven,我已经使用maven大约两年了,但我认为我并不完全理解maven中的概要文件,特别是当我遇到以下问题时 我有一个maven项目,包含三个模块:secweb父模块、secweb服务模块和secweb服务模块,secweb服务模块依赖于SpringWebMVC,而secweb服务模块依赖于secweb服务模块 问题是: 1) 当我使用“mvn clean install-Dinclude”时,它工作得很好,spring-mvc.jar可以在secweb-web.war中找到 2) 当我使用“mvn干
secweb父级的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>
<properties>
<project.version>1.0.0</project.version>
</properties>
<groupId>com.mediatek.dt</groupId>
<artifactId>secweb-parent</artifactId>
<version>${project.version}</version>
<packaging>pom</packaging>
<modules>
<module>../secweb-web</module>
<module>../secweb-service</module>
</modules>
</project>
4.0.0
1.0.0
com.k.dt
secweb父级
${project.version}
聚甲醛
../secweb
../secweb服务
secweb服务的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>
<parent>
<groupId>com.mediatek.dt</groupId>
<artifactId>secweb-parent</artifactId>
<version>${project.version}</version>
<relativePath>../secweb-parent</relativePath>
</parent>
<artifactId>secweb-service</artifactId>
<profiles>
<profile>
<id>include-jar</id>
<activation>
<property>
<name>include</name>
</property>
</activation>
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>2.5</version>
</dependency>
</dependencies>
</profile>
</profiles>
</project>
4.0.0
com.k.dt
secweb父级
${project.version}
../secweb父项
secweb服务
包括罐子
包括
org.springframework
SpringWebMVC
2.5
用于secweb的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>
<parent>
<groupId>com.mediatek.dt</groupId>
<artifactId>secweb-parent</artifactId>
<version>${project.version}</version>
<relativePath>../secweb-parent</relativePath>
</parent>
<artifactId>secweb-web</artifactId>
<packaging>war</packaging>
<dependencies>
<dependency>
<groupId>com.mediatek.dt</groupId>
<artifactId>secweb-service</artifactId>
<version>${project.version}</version>
</dependency>
</dependencies>
</project>
4.0.0
com.k.dt
secweb父级
${project.version}
../secweb父项
赛科网
战争
com.k.dt
secweb服务
${project.version}
您可以使用检查活动配置文件,如下例所示
change directory to the parent
e.g. cd /my/project/secweb-parent
Then execute the following command twice for comparing
mvn help:help:active-profiles
mvn help:help:active-profiles -Pinclude-jar
无论如何,重要的一点是版本,您已将其定义为1.0.0。我更喜欢使用1.0.0-SNAPSHOT
您可能会看到有关快照的更多信息
你为什么要用这个?快照版本用于正在进行开发的项目。如果您的项目依赖于正在进行开发的软件组件,那么您可以依赖快照版本,Maven将在运行构建时定期尝试从存储库下载最新的快照。类似地,如果系统的下一个版本将有一个版本“1.4”,那么在正式发布之前,您的项目将有一个版本“1.4-SNAPSHOT”
作为默认设置,Maven不会检查远程存储库上的快照版本。要依赖快照发布,用户必须明确启用使用POM中的存储库或pluginRepository元素下载快照的功能
还有一个关于stackoverflow的快照的有用问题和答案
我希望这能有所帮助。谢谢您的回复,但我找不到与1)mvn帮助:帮助:活动配置文件和2)mvn帮助:帮助:活动配置文件-Pinclude jar的输出有什么不同。