【问题标题】:Install and add local jar(gradle based) in maven在 maven 中安装和添加本地 jar(基于 gradle)
【发布时间】:2021-03-24 19:07:39
【问题描述】:

我制作了一个基于 gradle 的 Spring boot 项目,其中我有一个类:

@Data
@NoArgsConstructor
public class Calculation {
    public int multiply(int a, int b)
    {
        return a*b;
    }
}

然后我做了一个罐子

external-0.0.1.jar

然后我尝试在基于 maven 的 spring boot 项目中安装它:

mvnw install:install-file -Dfile=F:\pull\external-0.0.1.jar -DgroupId=com.sakil -DartifactId=external -Dpackaging=jar -Dversion=0.0.1

之后它被添加到位置:

C:\Users\shahjalal.sakil.m2\repository\com\sakil\external\0.0.1

然后我添加 pom.xml:

 <dependency>
            <groupId>com.sakil</groupId>
            <artifactId>external</artifactId>
            <version>0.0.1</version>
   </dependency>

但是当我尝试导入它时:

import com.sakil.external.Calculation;

@SpringBootApplication
public class AcApplication {

    public static void main(String[] args) {
        SpringApplication.run(AcApplication.class, args);
        Calculation cal = new Calculation();

    }

显示错误: com.sakil.external 包不存在

【问题讨论】:

    标签: spring-boot maven gradle


    【解决方案1】:

    Spring Boot 默认会创建一个可执行 jar(用于将其作为独立应用程序运行),这不是您在创建库时想要的。

    要让 Spring Boot 制作一个普通的 jar,请将其添加到您的 Gradle 项目中:

    jar {
        enabled = true
    }
    
    bootJar {
        enabled = false
    }
    

    我还可以建议您使用Maven publishing plugin 将您的库上传到本地存储库吗?否则,pom 文件将不会包含传递依赖。

    【讨论】:

    • 是的,你是对的,当我在 build.gradle 中尝试你的 sn-p 时,它工作正常。以前我的类在 BOOT-INF 文件夹中,所以当尝试安装该 jar 时,它不起作用。
    猜你喜欢
    • 1970-01-01
    • 2021-03-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多