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

spring启动包不存在错误

柯骏
2023-03-14

我编译我的项目与mvn清洁包,并失败与包不存在

“详细信息”命令:

  • 获取jar文件target/xxxx。jar通过在源项目中运行mvn clean package

这里是源代码项目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>

共有1个答案

汝天宇
2023-03-14

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

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

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

如果不能按照上述建议重新排列代码,则必须配置Spring Boot的Maven和Gradle插件,以生成适合作为依赖项使用的单独工件。可执行存档不能作为依赖项使用,因为可执行jar格式将应用程序类打包在BOOT-INF/类中。这意味着当可执行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>
 类似资料:
  • 我在启动spring boot应用程序时遇到以下错误。这是我的第一个spring boot项目。因此,我不确定错误以及如何修复它。 申请启动失败 描述: 配置为侦听端口8080的Tomcat连接器无法启动。端口可能已在使用中,或者连接器可能配置错误。 行动: 验证连接器的配置,识别并停止在端口8080上侦听的任何进程,或者将此应用程序配置为在另一个端口上侦听。

  • 问题内容: 我有一个目录结构,例如在包含Java文件的根目录下。我在与上述相同的根目录中的目录结构中还有另一个Java文件。我正在从中调用方法,但收到错误消息,该程序包不存在。 我已经在我的java文件中导入了包。能给我一些建议吗? 问题答案: 这有效: com / example / model / BearExtra.java com / example / web / Bear.java 现

  • Intellij版本:Community 2019.2.3 Maven:3.6.2 Spring:2.2.0 我正在尝试创建一个非常简单的Spring maven项目,其中包含两个子模块(一个独立,另一个依赖于独立)。 根模块-测试多模块独立模块-独立依赖模块-依赖 测试多模块pom。xml具有所有与Spring相关的声明和模块定义 独立poom。xml是最简单的。只有父maven声明 从属模块p

  • 我试图使用Intellij Ultimate(Java 1.8,Maven 3.5.4,spring 2.0.4)与spring boot创建一个项目。这是我的第一个spring boot项目,所以我不确定我是否正确地使用了Maven。 我已经尝试了编辑pom文件并从这个链接添加依赖项(spring-boot-starter-data-jpa,spring-boot-starter-web)的建议

  • 问题内容: 当我尝试构建我的android项目时,出现此错误 错误:(8,37)错误:包android.support.design.widget不存在错误:(18,9)错误:找不到符号类TabLayout错误:(18,32)错误:找不到符号类TabLayout错误: (21,33)错误:找不到符号变量TabLayout错误:(27,56)错误:软件包TabLayout不存在错误:(48,36)错

  • 我能够在本地机器上构建java项目,它使用maven成功构建。然而,当我在Jenkins机器上构建它时,我得到了一个编译错误: 包javax.jms不存在 这是什么意思?它在哪里寻找javax。jms?在本地m2回购中,classpath? 我不得不对我的pom进行以下更改。xml使其在Linux上工作: a)明确声明maven-site-plugin版本为2.1。org.apache.maven