Maven 2 配置Maven以在项目目录外生成输出
请帮帮我,我是马文的新手。我试图在Maven项目文件夹的不同目录中生成一个目标文件夹。根据我的要求,当我构建maven项目时,生成的war文件应该放在另一个文件夹中,比如C:\naresh文件夹 这是我的代码:Maven 2 配置Maven以在项目目录外生成输出,maven-2,maven-3,Maven 2,Maven 3,请帮帮我,我是马文的新手。我试图在Maven项目文件夹的不同目录中生成一个目标文件夹。根据我的要求,当我构建maven项目时,生成的war文件应该放在另一个文件夹中,比如C:\naresh文件夹 这是我的代码: <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://mav
<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">
<packaging>war</packaging>
<modelVersion>4.0.0</modelVersion>
<groupId>com.test</groupId>
<artifactId>project</artifactId>
<version>1.0</version>
<build>
<directory>${project.basedir}/target</directory>
<outputDirectory>C:\Software\${project.basedir}/target</outputDirectory>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<configuration>
<warSourceDirectory>WebContent</warSourceDirectory>
</configuration>
</plugin>
</plugins>
</build>
</project>
战争
4.0.0
com.test
项目
1
${project.basedir}/target
C:\Software\${project.basedir}/target
org.apache.maven.plugins
maven战争插件
网络内容
关于Maven,您必须了解的第一件事是:Maven有它的约定其中一个约定是有一个,而不是其他地方。此外,绝对禁止将一些绝对文件夹定义放入pom中。@khmarbaise是正确的,使用maven时,您最好尽可能遵循约定-否则您应该使用不同的构建工具,否则您将一路与之抗争。也就是说,您可以通过以下方式实现您的目标:
<build>
<outputDirectory>${user.home}/${project.artifactId}/target</outputDirectory>
...
</build>
与公认的答案非常相似,我使用的是一个安装在docker中的deployments文件夹
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<configuration>
<outputDirectory>${project.build.directory}/deployments</outputDirectory>
</configuration>
</plugin>
</plugins>
org.apache.maven.plugins
maven战争插件
${project.build.directory}/deployments
问题是为什么您需要不同的布局?@khmarbaise,有时我们会做这种安排,以加快本地的开发和测试。当然,这些配置并没有真正发布到PROD或UAT环境中。这种配置不会提高性能。恰恰相反,这将在每个CI解决方案等上失败。
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<configuration>
<outputDirectory>${project.build.directory}/deployments</outputDirectory>
</configuration>
</plugin>
</plugins>