你好,我对战争创造有一个奇怪的问题。
我使用maven-war-plugin(尝试3.1.0、3.2.0和2.6)。当我运行war:war(或mvn clean package
或类似的东西)时,会创建war,但我注意到它就像总是打包在项目历史中遇到的所有文件和依赖项。我注意到了这一点,因为war文件总是越来越大,通过打开它,我看到我在pom上声明了很多依赖项,但是现在它们已被删除,最重要的是我从项目中删除了一些类!我什至试图开始一个新项目,结果没有改变。
我想我用得很厉害...我应该做些什么让他“忘记”历史并强迫他在开战时考虑这个项目吗?
感谢您的帮助!
PS:
为了完整起见,这里有我的pom.xml:
<?xml version="1.0" encoding="UTF-8"?>
<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>
<groupId>sduca-consumer-listener</groupId>
<artifactId>sduca-consumer-listener</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>war</packaging>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<build>
<sourceDirectory>src/main/java</sourceDirectory>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.6.0</version>
<configuration>
<source>1.7</source>
<target>1.7</target>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>3.2.0</version>
<configuration>
<webappDirectory>/sduca</webappDirectory>
</configuration>
</plugin>
</plugins>
</build>
<dependencies>
<!-- Using Spring 4 because of jdk 1.7 -->
<!-- https://mvnrepository.com/artifact/org.springframework/spring-webmvc -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>4.3.18.RELEASE</version>
</dependency>
<!-- https://mvnrepository.com/artifact/log4j/log4j -->
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
</dependency>
</dependencies>
</project>
EDIT1 :我试图更改maven-war-plugin,maven-compiler-plugin和Maven本身的版本,但是没有任何变化。
EDIT2 :我尝试更改输出目录,但未更改。我试图更改依赖项的版本,并且按照“预期”的要求,现在战争包括两个版本,并且变得越来越大...
EDIT3 :我重新安装了IntelliJ IDEA,升级到最新版本。没什么变化,它只重置了程序包的内容,但仍“跟踪”内容和依赖项,并且在创建新程序包时仍将已删除的内容包括在程序包中。
EDIT4 :我开始使用mvn clean compile war:war
而不是mvn clean package
,开始时一切正常,但随后又返回了旧文件的问题。但是,我发现,如果我从战争中手动删除多余的资源和* .class,它看起来就可以工作(至少已部署)。
答案 0 :(得分:1)
对我来说,这只是很多技巧,
从pom.xml备份依赖项并将其删除。 进行干净的构建,它将在所有Java类中显示错误。还要删除以前的战争。
现在,替换那些备份的依赖项,然后重新构建Webapp。所有错误都将消失,war文件将按预期进行。