我编译我的项目与mvn清洁包
,并失败与包不存在
。
“详细信息”命令:
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>
理想情况下,您不应该使用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