Maven:将 war/web-inf/classes 中的类作为 jar 添加到 war/web-inf/lib

时间:2021-06-29 15:42:10

标签: java spring-boot maven

我对这里的 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 文件?

非常感谢您的指点。非常感谢。

1 个答案:

答案 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

相关问题