Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/386.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 向spring项目添加自定义依赖项后缺少类_Java_Spring_Spring Boot_Maven_Maven Jar Plugin - Fatal编程技术网

Java 向spring项目添加自定义依赖项后缺少类

Java 向spring项目添加自定义依赖项后缺少类,java,spring,spring-boot,maven,maven-jar-plugin,Java,Spring,Spring Boot,Maven,Maven Jar Plugin,为了避免代码重复,我决定在基于spring的库项目中打包一些类。以下是我采取的步骤: 使用spring initialzr创建项目 创建所需的结构并添加类 删除的主类 添加到pom.xml所需的依赖项 添加到pom.xmlpluginmaven jar plugin 创建了一个简单脚本,用于自动打包和安装对本地maven存储库的依赖关系: 脚本执行成功,我已将新创建的依赖项添加到另一个项目中 在应用程序启动期间,我遇到了一个异常: Caused by: java.lang.ClassNotFo

为了避免代码重复,我决定在基于spring的库项目中打包一些类。以下是我采取的步骤:

  • 使用spring initialzr创建项目
  • 创建所需的结构并添加类
  • 删除的主类
  • 添加到
    pom.xml
    所需的依赖项
  • 添加到
    pom.xml
    plugin
    maven jar plugin
  • 创建了一个简单脚本,用于自动打包和安装对本地maven存储库的依赖关系:
  • 脚本执行成功,我已将新创建的依赖项添加到另一个项目中
  • 在应用程序启动期间,我遇到了一个异常:

    Caused by: java.lang.ClassNotFoundException: com.fasterxml.jackson.dataformat.yaml.YAMLFactory
    
    YAMLFactory
    属于依赖项
    jackson dataformat yaml
    ,该依赖项添加到库项目的
    pom.xml


    根据我的理解,
    mvn包
    不包含依赖项,那么如何正确地包含它们呢?我知道fat jar的概念,但这可能不是正确的解决方案。

    我用来编译spring应用程序的是:

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>${maven-compiler.version}</version>
                <configuration>
                    <source>11</source>
                    <target>11</target>
                    <release>11</release>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <fork>true</fork>
                    <mainClass>path.to.main.class</mainClass>
                </configuration>
                <executions>
                    <execution>
                        <goals>
                            <goal>repackage</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
    
    
    org.apache.maven.plugins
    maven编译器插件
    ${maven compiler.version}
    11
    11
    11
    org.springframework.boot
    springbootmaven插件
    真的
    path.to.main.class
    重新包装
    

    mvn清洁安装

    ,它将生成一个包含所有依赖项的jar


    希望它对您有所帮助。

    构建和安装可以通过以下方式完成:
    mvn clean package
    将创建所有内容,
    mvn clean install
    将工件安装到您的本地存储库中,这通常不是您喜欢的。
    mvn Spring Boot:run
    启动应用程序命令行或通过IDE…不完全正确。这个项目的目标是能够将它作为一个依赖项添加到另一个项目中,能够使用可重用代码。
    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>${maven-compiler.version}</version>
                <configuration>
                    <source>11</source>
                    <target>11</target>
                    <release>11</release>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <fork>true</fork>
                    <mainClass>path.to.main.class</mainClass>
                </configuration>
                <executions>
                    <execution>
                        <goals>
                            <goal>repackage</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>