如何配置 Maven WAR 插件默认执行 "inplace" 目标?
How do I configure the Maven WAR plugin to execute the "inplace" goal by default?
我正在使用 Maven 3.2.3 和 Maven War 2.6 插件。我希望 Maven WAR 插件的“inlace”目标默认执行(我不必在命令行上明确指定“war:inlace”)。所以我创建了一个包含以下内容的配置文件
<profile>
<id>dev</id>
<activation>
<property>
<name>!flag</name>
</property>
</activation>
<build>
<plugins>
<plugin>
<artifactId>maven-clean-plugin</artifactId>
<version>2.4.1</version>
<configuration>
<filesets>
<fileset>
<directory>${project.basedir}/src/main/webapp/WEB-INF/classes</directory>
</fileset>
<fileset>
<directory>${project.basedir}/src/main/webapp/WEB-INF/lib</directory>
</fileset>
</filesets>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.6</version>
<configuration>
<useCache>true</useCache>
<workDirectory>/tmp/${project.artifactId}/war/work</workDirectory>
</configuration>
<goals>
<goal>inplace</goal>
</goals>
</plugin>
</plugins>
</build>
</profile>
使用“mvn help:active-profiles”,当我在我的 WAR 项目上 运行 “mvn clean install” 时,我已验证正在使用此配置文件。但是,WAR 没有组装到位。例如,我得到输出
[INFO] Packaging webapp
[INFO] Assembling webapp [myproject] in [/Users/davea/Dropbox/workspace/myproject/target/myproject]
[INFO] Processing war project
[INFO] Copying webapp resources [/Users/davea/Dropbox/workspace/myproject/src/main/webapp]
[INFO] Webapp assembled in [17460 msecs]
我还注意到我的 src/main/resources/WEB-INF 文件夹中没有“类”或“lib”资源。我需要进行哪些不同的配置才能让我的 WAR 就地构建?
这可能会被归类为 How to get Maven to run war:exploded but not war:war 的副本,但略有改动。而不是 exploded
它需要 inplace
:
<pluginManagement>
<plugins>
<plugin>
<!-- don't pack the war -->
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<configuration>
<!-- optional, depends on your setup -->
<failOnMissingWebXml>false</failOnMissingWebXml>
</configuration>
<executions>
<execution>
<id>default-war</id>
<phase>none</phase>
</execution>
<execution>
<id>war-inplace</id>
<phase>package</phase>
<goals>
<goal>inplace</goal>
</goals>
</execution>
</executions>
</plugin>
...
</plugins>
<pluginManagement>
WAR 插件负责收集所有工件依赖项、类 和 Web 应用程序的资源,并将它们打包到 Web 应用程序存档中。
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>3.0.0</version>
</plugin>
我正在使用 Maven 3.2.3 和 Maven War 2.6 插件。我希望 Maven WAR 插件的“inlace”目标默认执行(我不必在命令行上明确指定“war:inlace”)。所以我创建了一个包含以下内容的配置文件
<profile>
<id>dev</id>
<activation>
<property>
<name>!flag</name>
</property>
</activation>
<build>
<plugins>
<plugin>
<artifactId>maven-clean-plugin</artifactId>
<version>2.4.1</version>
<configuration>
<filesets>
<fileset>
<directory>${project.basedir}/src/main/webapp/WEB-INF/classes</directory>
</fileset>
<fileset>
<directory>${project.basedir}/src/main/webapp/WEB-INF/lib</directory>
</fileset>
</filesets>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.6</version>
<configuration>
<useCache>true</useCache>
<workDirectory>/tmp/${project.artifactId}/war/work</workDirectory>
</configuration>
<goals>
<goal>inplace</goal>
</goals>
</plugin>
</plugins>
</build>
</profile>
使用“mvn help:active-profiles”,当我在我的 WAR 项目上 运行 “mvn clean install” 时,我已验证正在使用此配置文件。但是,WAR 没有组装到位。例如,我得到输出
[INFO] Packaging webapp
[INFO] Assembling webapp [myproject] in [/Users/davea/Dropbox/workspace/myproject/target/myproject]
[INFO] Processing war project
[INFO] Copying webapp resources [/Users/davea/Dropbox/workspace/myproject/src/main/webapp]
[INFO] Webapp assembled in [17460 msecs]
我还注意到我的 src/main/resources/WEB-INF 文件夹中没有“类”或“lib”资源。我需要进行哪些不同的配置才能让我的 WAR 就地构建?
这可能会被归类为 How to get Maven to run war:exploded but not war:war 的副本,但略有改动。而不是 exploded
它需要 inplace
:
<pluginManagement>
<plugins>
<plugin>
<!-- don't pack the war -->
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<configuration>
<!-- optional, depends on your setup -->
<failOnMissingWebXml>false</failOnMissingWebXml>
</configuration>
<executions>
<execution>
<id>default-war</id>
<phase>none</phase>
</execution>
<execution>
<id>war-inplace</id>
<phase>package</phase>
<goals>
<goal>inplace</goal>
</goals>
</execution>
</executions>
</plugin>
...
</plugins>
<pluginManagement>
WAR 插件负责收集所有工件依赖项、类 和 Web 应用程序的资源,并将它们打包到 Web 应用程序存档中。
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>3.0.0</version>
</plugin>