Maven в Eclipse: инкрементные сборки
Я некоторое время оглядывался по сторонам и не могу найти определенный способ постепенной сборки Maven в Eclipse.
В настоящее время Maven создает файл.war каждый раз, когда я вносю изменения, что занимает некоторое время для компиляции в процессе обычной сборки.
Какой самый простой способ ускорить процесс и просто скопировать дельта-изменения в каталог?
Мой файл 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/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.mkyong.common</groupId>
<artifactId>SpringMVC</artifactId>
<packaging>war</packaging>
<version>1.0-SNAPSHOT</version>
<name>SpringMVC Maven Webapp</name>
<url>http://maven.apache.org</url>
<properties>
<spring.version>3.1.2.RELEASE</spring.version>
</properties>
<dependencies>
<!-- Spring 3 dependencies -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${spring.version}</version>
</dependency>
<!-- JSON -->
<dependency>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-mapper-asl</artifactId>
<version>1.9.8</version>
</dependency>
<dependency>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-core-asl</artifactId>
<version>1.9.8</version>
</dependency>
<!-- DHTMLX -->
<dependency>
<groupId>com.mylaensys.dhtmlx.adapter</groupId>
<artifactId>mylaensys-dhtmlx-adapter</artifactId>
<version>1.1</version>
</dependency>
</dependencies>
<build>
<finalName>SpringMVC</finalName>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.6</source>
<target>1.6</target>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.0.2</version>
<!-- <version>2.1-beta-1</version> -->
<configuration>
<overlay>
<excludes>
META-INF/**,scripts/menu.js,WEB-INF/*.txt,WEB-INF/jboss-web.xml,WEB-INF/web.xml
</excludes>
</overlay>
<archiveClasses>true</archiveClasses>
<warSourceDirectory>
src/main/webapp
</warSourceDirectory>
<warSourceExcludes>
WEB-INF/*.tld,WEB-INF/classes/**
</warSourceExcludes>
<outputDirectory>
${env.WAR_PATH}
</outputDirectory>
<archive>
<manifest>
<addClasspath>false</addClasspath>
<classpathPrefix>lib/</classpathPrefix>
</manifest>
<addMavenDescriptor>true</addMavenDescriptor>
</archive>
</configuration>
</plugin>
</plugins>
</build>
</project>
2 ответа
По умолчанию Maven не должен создавать войну во время компиляции Eclipse. Можете ли вы поделиться своим pom.xml?
Мой способ использования системного maven (не внутреннего maven затмения):
- Щелкните правой кнопкой мыши проект -> Настройки -> Строители
- Новая... -> Программа
- Задавать
C:\Program Files\apache-maven-3.3.9\bin\mvn.cmd
(ваш каталог может отличаться) от местоположения. - Установите папку, где у вас есть
pom.xml
в "Рабочий каталог:" - Задавать
war:war
Аргументам: - Переключитесь на панель "Параметры сборки" и отметьте "Во время автоматической сборки".
Теперь, если вы когда-нибудь измените файл (и сохраните) mvn war:war
выполнен.