spring boot 包不存在错误

2023-11-26

我正在编译我的项目mvn clean package,并失败了package does not exist.

详细命令:

  • 获取jar文件target/xxxx.jar通过跑步mvn clean package在源项目中。
  • 通过运行安装此 jar 文件mvn install:install-file -Dfile=lib/xxxx.jar -DgroupId=com.company -DartifactId=source-package-name -Dversion=1.0.0 -Dpackaging=jar
  • 向目标项目添加代码,该代码将使用源项目中的一些功能
  • 通过运行编译目标项目mvn clean package,它只是失败了package does not exist

这是源项目pom.xml

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

    <groupId>com.company</groupId>
    <artifactId>source-package-name</artifactId>
    <version>1.0.0</version>
    <packaging>jar</packaging>

    <name>source-package-name</name>
    <description>xxxx</description>

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

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <java.version>1.8</java.version>
    </properties>

    <dependencies>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <executions>
                    <execution>
                        <goals>
                            <goal>repackage</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <configuration>
                    <argLine>-Xmx6144m</argLine>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>

这是目标项目pom.xml

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

    <groupId>com.company</groupId>
    <artifactId>target-package-name</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>war</packaging>

    <name>target-package-name</name>
    <url>http://maven.apache.org</url>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <jdk.version>1.7</jdk.version>
        <smartv-common.version>0.3.5s</smartv-common.version>
        <spring.version>3.0.5.RELEASE</spring.version>
    </properties>

    <dependencies>

    </dependencies>

    <build>
        <resources>
            <resource>
                <directory>src/main/resources</directory>
                <excludes>
                    <!-- Exclude those since they are copied from the profile folder for 
                        the build -->
                    <exclude>system.properties</exclude>
                </excludes>
                <filtering>false</filtering>
            </resource>
        </resources>

        <finalName>xxxxx</finalName>
        <!-- Set a compiler level -->

        <extensions>
            <extension>
                <groupId>kr.motd.maven</groupId>
                <artifactId>os-maven-plugin</artifactId>
                <version>1.4.1.Final</version>
            </extension>
        </extensions>

        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.1</version>
                <configuration>
                    <source>${jdk.version}</source>
                    <target>${jdk.version}</target>
                    <encoding>UTF-8</encoding>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-war-plugin</artifactId>
                <version>2.6</version>
                <configuration>

                    <!-- http://maven.apache.org/plugins/maven-war-plugin/examples/adding-filtering-webresources.html 
                        http://stackoverflow.com/questions/12729513/how-to-overwrite-files-in-the-war-file-during-maven-build -->
                    <webResources>
                        <!-- Resources from the activated profile folder -->
                        <resource>
                            <targetPath>WEB-INF/classes/</targetPath>
                            <includes>
                                <include>system.properties</include>
                            </includes>
                        </resource>
                    </webResources>

                </configuration>

            </plugin>

        </plugins>
    </build>

</project>

理想情况下,您不应该使用 Spring Boot 应用程序(已重新打包的东西)作为依赖项。从文档:

与 war 文件一样,Spring Boot 应用程序不打算用作依赖项。如果您的应用程序包含要与其他项目共享的类,建议的方法是将该代码移至单独的模块中。然后,您的应用程序和其他项目就可以依赖该单独的模块。

如果建议的解决方案在您的情况下不可行,文档将继续描述替代方案:

如果您无法按照上面的建议重新排列代码,则必须配置 Spring Boot 的 Maven 和 Gradle 插件以生成适合用作依赖项的单独工件。可执行归档文件不能用作依赖项,因为可执行 jar 格式将应用程序类打包在 BOOT-INF/classes 中。这意味着当可执行 jar 用作依赖项时,无法找到它们。

为了生成两种工件(一种可用作依赖项,另一种是可执行的),必须指定一个分类器。该分类器应用于可执行存档的名称,保留默认存档用作依赖项。

要在Maven中配置exec的分类器,可以使用以下配置:

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <configuration>
                <classifier>exec</classifier>
            </configuration>
        </plugin>
    </plugins>
</build>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

spring boot 包不存在错误 的相关文章

随机推荐

  • 运行简单的远程 Akka 应用程序

    我正在尝试设置一个简单的服务器 客户端 akka 使用 Akka 2 0 3 应用程序 但无法连接 在此之前 这是基本代码 import com typesafe config ConfigFactory import akka actor
  • 使用Unix JOIN命令合并两个文件

    尽管进行了所有研究 但这并没有像我预期的那样工作 我肯定错过了什么 文件1 cat file1 csv 1 123 JohnDoe 1 456 BobDylan 1 789 BillyJean 文件2 cat file2 csv 111 1
  • 是否可以让组织模式在议程待办事项列表中显示面包屑?

    在 Emacs 中 我有一组以下格式的 TODO H1 H2 H3 TODO X 当我查看议程待办事项视图时 它仅显示为TODO x 有没有办法让议程视图将其显示为H1 H2 H3 TODO X 我从以下位置找到了这个解决方案here se
  • 如何从 Java 代码调用 AWS lambda 函数/处理程序

    我是 AWS lambda 新手 我已经创建了一个带有处理程序的 lambda 函数 example Orders orderHandler 这是自定义处理程序 现在我想从我的 Java 程序中调用它 我需要如何调用它 这个类中的2个方法应
  • 什么定义了“活动”线程?

    在Java并发中 什么构成了线程 active 只是它没有空闲这一事实 从技术上来说 等待 或 挂起 的线程是否仍然被认为是活动的 据我所知 活跃 这个词似乎被经常使用 但从未被定义过 这ThreadGroup enumerate 方法记录
  • 是否可以在没有电子邮件 ID 的情况下注册 Facebook? [关闭]

    Closed 这个问题需要多问focused 目前不接受答案 我有关于 Facebook 注册的问题 我需要知道在不提供电子邮件 ID 的情况下使用任何手机号码或任何其他方式注册的可能性 这很重要 因为我正在开发一个 Facebook 应用
  • 如何防止 Spring MVC 在 Spring Boot 中转换为 Collection 时解释逗号?

    我们基本上有同样的问题这个问题姿势 但对于列表 此外 我们正在寻找一个全局解决方案 目前我们有一个 REST 调用 其定义如下 RequestMapping ResponseBody public Object listProducts R
  • 如何处理文本区域中的

    我想要一个可以处理按下情况的文本区域tab key 在默认情况下 如果您按tab键然后焦点离开文本区域 但是当用户想要输入时情况又如何呢 tab文本区域中的键 我可以捕获此事件并将焦点返回到文本区域并将选项卡添加到current光标位置 你
  • Python 跟踪模块 - 跟踪执行的行,但保存到文件,而不是标准输出

    我想跟踪 python 脚本的执行行 但是我使用的程序需要将内容打印到标准输出 python 跟踪模块的跟踪选项将它们打印到标准输出 有没有办法告诉它不要将它们打印到标准输出 而是将它们保存到文件中 我尝试设置outfile参数 但它不会停
  • Android 文件描述符泄漏调试

    我们公司有很多在虚拟 真实设备上运行的用户界面测试 运行一段时间后测试随机崩溃 我认为这是文件描述符超出的结果 我使用 ls proc PID fd wc l and lsof p PID 但它并没有多大帮助 lsof 中的大多数行看起来像
  • Athena 的 .csv.metadata 文件的数据格式是什么?

    的数据格式是什么 csv metadata由 Amazon Athena 编写的文件 除了每个查询的输出文件之外 还有一个元数据文件 看起来它描述了结果的架构 我认为这就是雅典娜用来创建ResultSet ResultSetMetadata
  • Oracle 中表行的创建日期时间是多少?

    昨天我的朋友 BI 专家 向我解释了一个预言机问题 有一个 Oracle 数据库包含大量数据 但它们不会为每个表创建列来存储每行的创建日期时间 所以在这种情况下他如何获得每行的创建日期时间 时间戳 每行都有自己的系统更改号 SCN 这精确地
  • 蟒蛇 |为什么访问实例属性比访问本地慢?

    import timeit class Hello def init self self x 5 def get local attr self x self x 10x10 x x x x x x x x x x x x x x x x
  • 数据流模板 Cloud Pub/Sub 主题与 BigQuery 订阅

    我正在设置一个简单的概念验证来学习 Google Cloud 中的一些概念 特别是 PubSub 和 Dataflow 我有一个 PubSub 主题greeting 我创建了一个简单的云函数 用于向该主题发送发布消息 const escap
  • 使用linux宏access_ok()有什么意义

    我一直在做一些研究 我对这个宏有点困惑 希望有人能给我一些指导 我有一些 ioctl 代码 我继承的 而不是编写的 它做的第一件事是检查是否access ok 在继续从用户空间复制数据之前 define lddk copy from use
  • 找不到“React/RCTBridgeModule.h”文件

    在 xcode 上构建反应本机 iOS 应用程序时出现此错误 npm install 和 rpm 链接后开始出现此错误反应本机FS图书馆 但在网上搜索解决方案后 我注意到很多人在安装其他 React Native 库时遇到了同样的错误 A
  • Kotlin - 使用 Persistence Room:runtime lib 从 Room 数据库返回新插入的 id

    我正在尝试使用 Kotlin 在 Room 数据库中插入用户记录 它工作得很好 现在我想返回新插入的记录id来检查Room数据库中的记录是否成功插入 但是当我在插入方法中应用 Long 返回类型并运行代码时 我收到以下错误 错误 方法返回
  • Vec::new() 如何知道请求的元素类型是什么?

    我可以创建任何类型的向量 如下所示 let mut vec Vec
  • Bootstrap 流体布局 - 侧边栏的固定宽度

    我有一个基于 Twitter Bootstrap 的流畅布局 div class container fluid div class row fluid div class span2 div div class span10 div di
  • spring boot 包不存在错误

    我正在编译我的项目mvn clean package 并失败了package does not exist 详细命令 获取jar文件target xxxx jar通过跑步mvn clean package在源项目中 通过运行安装此 jar