我在我的两个项目中使用了几乎相同的POM,它们位于相同的工作空间但它们根本不相关,但是它们是相关的,因为在我使用spring和jboss时都是如此。这是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/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.springinaction.hello</groupId>
<artifactId>spring-in-action</artifactId>
<packaging>jar</packaging>
<version>0.0.1-SNAPSHOT</version>
<name>spring-in-action</name>
<url>http://maven.apache.org</url>
<properties>
<jboss.ome>C:\jboss-5.1.0.GA\server\default\deploy</jboss.ome>
<springversion>2.5.3</springversion>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring</artifactId>
<version>${springversion}</version>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.14</version>
<scope>provided</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.0</version>
<configuration>
<warName>spring-book</warName>
<outputDirectory>${jboss.ome}</outputDirectory>
</configuration>
</plugin>
</plugins>
</build>
</project>
我希望用这个POM实现的是我想在构建spring-book.war时命名我的战争并将其复制到我指定的Jboss位置。现在,在我的第一个项目中,它完全按照我的要求运行,但在其他项目中却没有。我改变了springversion和jboss home属性变量但是一切都保持不变,我该怎么办?项目构建和所有,一切都工作得很好只是我不想每次在我的jboss目录中复制并且之前删除旧的战争,每个源代码需要大约20秒更改它很多
答案 0 :(得分:5)
此行发现问题:
<packaging>jar</packaging>
你没有使用正确的包装,它应该是:
<packaging>war</packaging>
在此更改之后,war插件应该被调用,并且事情应该像在另一个项目中一样工作:)
答案 1 :(得分:2)
您可以将输出目录保留为默认值,并使用配置文件而不是maven jboss plugin。它有一个hard-deploy
目标,可将您的工件复制到deploy目录。如果它在个人资料中,您可以在(并且仅在您想要的时候)激活它。
此外,使用antrun插件,您还可以在复制新的war文件之前将其删除(当war文件名包含版本时这很有用,但在您的情况下可能不需要)。
<profiles>
<profile>
<id>deploy</id>
<build>
<plugins>
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
<executions>
<execution>
<id>remove-old-war</id>
<phase>prepare-package</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<tasks>
<delete>
<fileset dir="${jboss.ome}"
includes="*.war"/>
</delete>
</tasks>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>jboss-maven-plugin</artifactId>
<executions>
<execution>
<id>redeploy-server</id>
<phase>pre-integration-test</phase>
<goals>
<goal>hard-deploy</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
</profiles>
然后,您可以使用
激活配置文件mvn -Pdeploy install