当前位置: 首页 > 知识库问答 >
问题:

如何将Spring Boot Jar导入其他Spring Boot Jar Maven库

丌官淇
2023-03-14


我需要帮助。我有2个spring-boot-jar项目maven基,我想把第一个导入第二个,如图所示

我在Config Spring-Boot中导入Util Jar并运行Spring Boot,但它是Show error

<dependency>
    <groupId>com.ballistic</groupId>
    <artifactId>adminutil</artifactId>
    <version>0.1</version>
</dependency>

[错误]无法执行目标org.apache.maven.plugins:maven-compiler-plugin:3.8.0:compile(default-compile)on project config:Compilation failure:Compilation failure:Compilation failure:


pom.xm util-jar

<?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>

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.1.3.RELEASE</version>
    <relativePath/> <!-- lookup parent from repository -->
</parent>

<groupId>com.ballistic</groupId>
<artifactId>adminutil</artifactId>
<version>0.1</version>
<packaging>jar</packaging>
<name>adminutil</name>

<description>
    Util For Admin Tool Help In All Jar's
</description>

<properties>
    <java.version>1.8</java.version>
</properties>

<dependencies>

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter</artifactId>
        <exclusions>
            <exclusion>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-logging</artifactId>
            </exclusion>
        </exclusions>
    </dependency>

    <!-- Add Log4j2 Dependency -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-log4j2</artifactId>
    </dependency>

    <!-- Needed for Async Logging with Log4j 2 -->
    <dependency>
        <groupId>com.lmax</groupId>
        <artifactId>disruptor</artifactId>
        <version>3.4.0</version>
    </dependency>

    <dependency>
        <groupId>com.google.code.gson</groupId>
        <artifactId>gson</artifactId>
        <version>2.8.5</version>
    </dependency>

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>

</dependencies>

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>
</build>

pom.xm配置Jar

<?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>
<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.1.3.RELEASE</version>
    <relativePath/> <!-- lookup parent from repository -->
</parent>

<groupId>com.ballistic</groupId>
<artifactId>config</artifactId>
<version>0.0.1</version>
<packaging>jar</packaging>
<name>config</name>

<!--
 mvn install:install-file -Dfile=C:\Users\AdMaxim\Desktop\App\adminutil\target\adminutil-0.1.jar -DgroupId=com.ballistic -DartifactId=adminutil -Dversion=0.1 -Dpackaging=jar
 -->
<description>
    Config Help The Configuration Of All Sub Jar
</description>

<properties>
    <java.version>1.8</java.version>
</properties>

<dependencies>

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-mongodb</artifactId>
    </dependency>

    <dependency>
        <groupId>com.ballistic</groupId>
        <artifactId>adminutil</artifactId>
        <version>0.1</version>
    </dependency>

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>

</dependencies>

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <configuration>
                <includeSystemScope>true</includeSystemScope>
            </configuration>
        </plugin>
    </plugins>
</build>

共有1个答案

时宾实
2023-03-14

对于这个要求,您必须使用重新打包。

默认情况下,重新打包目标将用重新打包的工件替换原始工件。对于代表应用程序的模块来说,这是一种明智的行为,但是如果您的模块被用作另一个模块的依赖项,您需要为重新打包的模块提供一个分类器。

原因是应用程序类打包在boot-inf/classes中,因此依赖模块无法加载重新打包的JAR类。如果是这种情况,或者您希望保留原始工件,并用不同的分类器附加重新打包的工件,请按照以下方式配置插件:

<plugin>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-maven-plugin</artifactId>
    <version>1.4.1.RELEASE</version>
    <executions>
      <execution>
        <goals>
          <goal>repackage</goal>
        </goals>
        <configuration>
          <classifier>exec</classifier>
        </configuration>
      </execution>
    </executions>
    ...
  </plugin>

也可以声明main class。

<plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <mainClass>YourMainClass.java</mainClass>
                </configuration>
                <executions>
                    <execution>
                        <goals>
                            <goal>repackage</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
 类似资料:
  • 问题内容: 如何在Python中导入其他文件? 我到底该如何导入特定的文件呢? 如何导入文件夹而不是特定文件? 我想根据用户输入在运行时动态加载Python文件。 我想知道如何从文件中仅加载一个特定部分。 例如,在我有: 尽管这给了我中的所有定义,但也许我只想要一个定义: 我要从import语句中添加些什么? 问题答案: 是Python中的新增功能,用于以编程方式导入模块。它只是一个包装器,请参见

  • 我在将存在acrofield从一个pdf导入另一个pdf时遇到问题。这两个pdf相似。我尝试导入并保存文件(下面的代码)。如果我从文件系统打开它,我看不到更改,但如果我用pdfbox打开它,我看到之前插入的acrofile。我注意到文件大小增加了,但当我打开它时,我看不到可填充的字段。 提前谢谢你

  • 问题内容: 我尝试学习Go,但是我经常感到沮丧,因为其他语言似乎无法在Go中使用某些基本功能。因此,基本上,我想使用在其他文件中定义的结构类型。我能够使用结构类型以外的功能。在main.go中, 正如我所期望的那样,它可以完美运行(以及所有其他功能)(列表位于$ GOPATH中)。在软件包列表中,我将struct定义如下: 我想在其他结构中使用此结构,所以我尝试做这样的事情, 但不幸的是,我收到未

  • 我正在寻找一种跨平台的方式来共享ECDSA签名的公钥。从性能角度来看,我对CngKey和标准的.NET加密库有很大的了解,但后来我无法理解MS如何将33(或65)字节的公钥(使用secp256r1/P256)转换为104字节。因此,我无法支持跨平台签名和验证。。 我现在正在使用BouncyCastle,但神圣的handgranade是它慢! 所以,寻找对以下要求的建议: 跨平台/语言(服务器是.N

  • 问题内容: 我在一个项目中有一些代码,想在另一个项目中重用。我需要做什么(在两个文件夹中)才能执行此操作? 目录结构类似于: oo 项目1 file1.py file2.py 酒吧 项目2 fileX.py fileY.py 我想使用fileX.py和fileY.py中的file1.py和file2.py中的函数。 问题答案: 理想情况下,两个项目都是可安装的python程序包,并充满__init

  • 问题内容: 我想从PHPMyAdmin(或MySQl Workbench)导出数据库,然后将其导入SQLite数据库,这样我就可以进行本地编辑和测试而不会破坏实时版本。我对SQL非常陌生,因此所有导出选项等在这一点上对我来说都很密集。我尝试通过命令使用默认的导出设置PHPMyAdmin 也 但是这些引发了很多语法错误和“没有这样的表”错误。 我还尝试了在此处找到的经常被引用的脚本脚本,但是当我尝试