You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Maven仅打包指定models文件夹内容生成project-models.jar的方法咨询

实现方案

下面提供两种常用实现方式,你可以根据自己的项目维护需求选择:

方案一:不调整现有结构,通过插件自定义打包规则

适合临时打包、不想改动现有项目结构的场景,操作步骤如下:

  1. 在你项目的pom.xml中添加如下配置:
<build>
    <plugins>
        <!-- 配置编译器仅编译models目录下的Java源码,覆盖默认的src/main/java编译目录 -->
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.10.1</version>
            <configuration>
                <compileSourceRoots>
                    <compileSourceRoot>src/main/models</compileSourceRoot>
                </compileSourceRoots>
            </configuration>
        </plugin>
        <!-- 配置生成的jar包名称 -->
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-jar-plugin</artifactId>
            <version>3.2.2</version>
            <configuration>
                <finalName>project-models</finalName>
            </configuration>
        </plugin>
    </plugins>
</build>
  1. 执行打包命令:mvn clean package,执行完成后在target目录下就会生成project-models.jar
  2. 如果需要部署到私服,先在pom.xml中配置好distributionManagement的私服地址,再执行mvn deploy即可完成部署。

补充说明:如果你的models目录下存放的不是Java源码,而是资源文件,直接用resources配置指定目录即可:

<build>
    <resources>
        <resource>
            <directory>src/main/models</directory>
            <includes>
                <include>**/*</include>
            </includes>
        </resource>
        <!-- 如果不需要打包原resources目录的内容,删除下面的默认配置即可 -->
        <resource>
            <directory>src/main/resources</directory>
        </resource>
    </resources>
</build>

方案二:拆分独立子模块(推荐长期维护场景使用)

如果models是多个项目共用的公共代码,更推荐调整为多模块项目结构,将models拆分为独立的子模块,天然支持单独打包、部署,和业务代码完全解耦,维护成本更低:

  • 调整后的项目结构示例:
project(父工程,packaging属性设为pom)
    -- project-models(子模块,独立打包成project-models.jar)
       -- src
          -- main
             -- java
    -- project-main(原业务代码子模块,依赖project-models即可调用模型类)
       -- src
          -- main
             -- java
             -- resources

只需要在父工程的pom.xml中添加子模块声明,子模块单独配置自己的打包、部署规则即可。


内容的提问来源于stack exchange,提问作者Said Savci

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 23:45:04