我想使用maven-jar-plugin来构建diff分类器jars,例如:
MVN部署:部署-P调试,classifier-demo-0.0.1-debug.jar部署
mvn部署:部署-P测试,分类器-demo-0.0.1-test。jar已部署。
但失败:
Execution default of goal org.springframework.boot:spring-boot-maven-plugin:1.2.3.RELEASE:repackage failed: Source must refer to an existing file
pom。xml:
<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>1.2.3.RELEASE</version>
</parent>
<groupId>org.lenic</groupId>
<artifactId>classifier-demo</artifactId>
<version>0.0.1</version>
<properties>
<java.version>1.7</java.version>
</properties>
<distributionManagement>
<repository>
<id>local-repo</id>
<url>file://D:\repo</url>
</repository>
</distributionManagement>
<profiles>
<profile>
<id>test</id>
<properties>
<classifier>test</classifier>
</properties>
</profile>
<profile>
<id>debug</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<classifier>debug</classifier>
</properties>
</profile>
</profiles>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<classifier>${classifier}</classifier>
</configuration>
</plugin>
</plugins>
</build>
实际上,如果您设置Spring Boot Maven插件,您已经将spring-boot: repack包含在包中。所以只需“mvn清洁包”就足够了,我们不需要“mvn包spring-boot: repack”。
我想这就是原因:
<代码>此。项目getArtifact()。getFile()
spring-boot-maven-plugin\src\main\java\org\springFramework\boot\maven\RepackageMojo.java
public void execute() throws MojoExecutionException, MojoFailureException {
// ......
File source = this.project.getArtifact().getFile();
File target = getTargetFile();
Repackager repackager = new Repackager(source) {
@Override
protected String findMainMethod(JarFile source) throws IOException {
long startTime = System.currentTimeMillis();
try {
return super.findMainMethod(source);
}
finally {
long duration = System.currentTimeMillis() - startTime;
if (duration > FIND_WARNING_TIMEOUT) {
getLog().warn(
"Searching for the main-class is taking some time, "
+ "consider using the mainClass configuration "
+ "parameter");
}
}
}
};
// ......
}
目标:重新打包重新打包尝试重新打包原始工件,即projectName。罐子这是maven默认包阶段的结果,即mvn包命令输出。
当重新打包目标执行时,它会尝试查找projectName。罐子
当你运行mvn spring-boot:包时,项目Name.jar不在那里。这就是为什么它给出错误源必须引用现有文件
解决方案:运行命令mvn clean package spring boot:重新打包
我是Spring的新手,我试着按照它的官方网站上给出的教程进行操作,突然出现了这个错误。 以下是我的pom。xml 4.0.0组织。springframework。boot spring boot starter父代2.5.5 com。Spring Boot后端示例0.0.1-SNAPSHOT后端演示项目 知道为什么不起作用吗?我已经尝试了许多基于别人错误的方法,但都不起作用。现在有点沮丧。任何帮
我尝试运行一个Spring Boot应用程序,该应用程序是用maven Spring Boot:run运行的,但我仍然有一个问题,我是java Spring Boot的新手,我无法解决这个问题,如何解决这个问题,谢谢,问题如下: 执行目标组织失败。springframework。启动:spring boot maven插件:2.1.3。版本:在project app上运行(默认cli):运行时发生
我有以下项目结构: Spring boot主类位于核心模块中。集成测试将进入集成测试文件夹。 我正在尝试使用spring-boot-maven-plugin进行集成测试。我在集成测试模块中对其进行了以下pom配置。开始类属性在父pom中设置: 但是,我在父pom上的mvn clean安装中遇到以下错误: ject:Spring应用程序在配置的超时(30000ms)之前没有启动- 问题: 这个项目结
运行Maven测试时出现此错误 执行目标组织失败。阿帕奇。专家插件:maven插件插件:3.2:项目amsframeworok上的描述符(默认描述符):提取插件描述符时出错:“未找到插件:ams5的mojo定义。0:amsframeworok。'- 下面是我的pom。xml
执行目标组织失败。阿帕奇。专家插件:maven surefire插件:2.5-r682619-maestro-2.0.0:project ms61 webservice xxxx上的测试(默认测试):存在测试失败。这意味着什么以及如何解决它。我第一次做maven build。
是否可以以某种方式配置Spring引导maven插件以包括来自依赖项的资源。 例如,如果在我的spring boot项目中,我有: 在这个JAR文件中有一个属性文件,如 结果1。 但是,当我构建SpringBootJAR时,这个属性文件并没有添加到。包含它的JAR包含在 然而,在我的情况下。我想将的内容提取到Spring BootJAR的引导目录中,这样就可以进行自动配置。 在现实世界中,我试图通