1.背景
我的Maven项目有很多的模块和子模块与jars和wars一切工作.我也可以在服务器上部署它而没有任何问题.
我决定遵循这个maven命名转换,我正在进行一些测试project.name并project.build.finalName拥有一个合适的名称.
我定义project.name为根工件创建的模式是company-${project.artifactId},对于模块和子模块是${project.parent.name}-${project.artifactId}:
模式project.build.finalName是${project.name}-${project.version}:
但maven没有生成这些文件,而是给了我一个StackOverflowError.
2.重现错误的示例
你可以从github克隆这个例子:https://github.com/pauloleitemoreira/company-any-artifact
在github中,有一个master分支,它将重现此错误.还有only-modules分支,这是一个工作示例,用于${project.parent.name}生成finalName我想要的jar .
让我们考虑一个带有一个根pom工件,一个pom模块和一个子模块的maven项目.
-any-artifact
|
|-any-module
|
|-any-submodule
Run Code Online (Sandbox Code Playgroud)
2.1任何神器
<?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>any-artifact</artifactId>
<packaging>pom</packaging>
<version>1.0-SNAPSHOT</version>
<name>company-${project.artifactId}</name>
<modules>
<module>any-module</module>
</modules>
<!-- if remove finalName, maven will not …Run Code Online (Sandbox Code Playgroud) 运行 Maven 包目标时
mvn清理包
构建抛出错误:
目标 org.springframework.boot:spring-boot-maven-plugin:3.0.0-M1:repackage 失败:无法加载插件 'org.springframework.boot:spring-boot-maven-plugin 中的 mojo 'repackage': 3.0.0-M1' 由于 API 不兼容:org.codehaus.plexus.component.repository.exception.ComponentLookupException:org/springframework/boot/maven/RepackageMojo 已由更新版本的 Java 运行时(类文件版本 61.0),此版本的 Java 运行时仅识别 52.0 以下的类文件版本
我的 JAVA_HOME 指向 jdk1.8.0_73
我怎样才能让 spring-boot-maven-plugin 以重新打包的目标运行?
下面是我的模块中的 Maven 构建配置。
<build>
<resources>
<resource>
<directory>resources</directory>
</resource>
</resources>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.3</version>
<configuration>
<packagingExcludes>WEB-INF/lib/*.jar</packagingExcludes>
<webResources>
<resource>
<directory>src/main/resources</directory>
<include>*.*</include>
<targetPath>/WEB-INF/classes</targetPath>
</resource>
<resource>
<directory>src/main/webapp/errors</directory>
<include>*.*</include>
<targetPath>/errors/</targetPath>
</resource>
</webResources>
</configuration>
</plugin>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<mainClass>com.services.MyAApp</mainClass>
<layout>war</layout>
</configuration>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals> …Run Code Online (Sandbox Code Playgroud) java maven spring-boot maven-package spring-boot-maven-plugin
为什么在包含依赖项时会出现此错误?
\nCould not find implementation class: org.janusgraph.diskstorage.cql.CQLStoreManager\nRun Code Online (Sandbox Code Playgroud)\nCould not find implementation class: org.janusgraph.diskstorage.cql.CQLStoreManager\nRun Code Online (Sandbox Code Playgroud)\n请注意,我对 JanusGraph 和 GraphDB 以及 Cassandra 都是新手。
\ndocker run --name jg-cassandra -d -e CASSANDRA_START_RPC=true -p 9160:9160 -p 9042:9042 -p 7199:7199 -p 7001:7001 -p 7000:7000 cassandra:3.11janusgraph.cql.properties到 Cassandra [Docker 容器]\nmaven-package cassandra-3.0 docker-container janusgraph java-11