我对这里的 maven 比较陌生。我创建了一个具有以下结构的 Maven Spring boot 项目 -
..
<groupId>com.example</groupId>
<artifactId>MavenWeb</artifactId>
<version>0.0.1</version>
<packaging>war</packaging>
<name>MavenWeb</name>
<description>Maven Test Web Application</description>
<dependencies>
..
如您所见,packaging
已设置为 war
。因此,当生成 war
文件时,我的源代码生成的 .class files
将在 war/web-inf/classes
文件夹中生成。我想将其生成为 jar
文件并将其维护在 war/web-inf/lib
文件夹中,而不是在 classes 文件夹中生成。
我想我需要为此使用 maven-jar-plugin
。
但我不确定如何将生成的 jar 移动到 war/web-inf/lib
目录?有没有更简单的替代方法?
另外,如何限制在 .class
文件夹中生成 war/web-inf/classes
文件?
非常感谢您的指点。非常感谢。
答案 0 :(得分:0)
pom 的 build
部分应该是这样 -
<groupId>com.example</groupId>
<artifactId>MavenWeb</artifactId>
<version>0.0.1</version>
<packaging>war</packaging>
<name>MavenWeb</name>
<description>Maven Test Web Application</description>
<build>
<plugins>
<plugin>
<artifactId>maven-war-plugin</artifactId>
<configuration>
<archiveClasses>true</archiveClasses>
<webResources>
</webResources>
</configuration>
</plugin>
<plugin>
<artifactId>maven-jar-plugin</artifactId>
<executions>
<execution>
<id>default-jar</id>
<phase>compile</phase>
<goals>
<goal>jar</goal>
</goals>
<configuration>
<packaging>jar</packaging>
<generatePom>true</generatePom>
<artifactId>${project.artifactId}</artifactId>
<groupId>${project.groupId}</groupId>
<version>${project.version}</version>
<file>
${project.build.directory}/${project.artifactId}-${project.version}.jar
</file>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
这将限制编译类在 classes 文件夹中生成,同时生成编译类的瘦 jar 并将其添加为 web-inf/lib/MavenWeb-0.0.1.jar
。