我开始了一个简单的项目,使用来自confluent的人工制品。但当我尝试使用mvn clean install
或mvn clean package
编译项目时,我会收到类似的消息
[ERROR] C:Usersitsgitdatakmuservice-stackstream-data-preprocessorsrcmainjavaatacfhsalzburgdatakmuserviceDataPreProcessor.java:[1]
package at.ac.fhsalzburg.datakmu.service;
^
The type java.lang.Object cannot be resolved. It is indirectly referenced from required .class files
[ERROR] C:Usersitsgitdatakmuservice-stackstream-data-preprocessorsrcmainjavaatacfhsalzburgdatakmuserviceDataPreProcessor.java:[3]
public class DataPreProcessor {
^^^^^^^^^^^^^^^^
Implicit super constructor Object() is undefined for default constructor. Must define an explicit constructor
[ERROR] C:Usersitsgitdatakmuservice-stackstream-data-preprocessorsrcmainjavaatacfhsalzburgdatakmuserviceDataPreProcessor.java:[4]
public static void main(String[] args) {
^^^^^^
String cannot be resolved to a type
指示基本SDK类没有被发现;无法解析类型java.lang.Object;。我正在与其他几个Maven项目合作,它们运行良好。我不明白,这一定是个愚蠢的错误。
在这里你可以找到pom.xml文件:
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<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>stream-data-preprocessor</groupId>
<artifactId>stream-data-preprocessor</artifactId>
<version>0.1</version>
<packaging>jar</packaging>
<name>Kafka Streams Quickstart :: Java</name>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<slf4j.version>1.7.7</slf4j.version>
<log4j.version>1.2.17</log4j.version>
<java.version>8</java.version>
<avro.version>1.9.1</avro.version>
<gson.version>2.2.4</gson.version>
<kafka.version>2.5.0</kafka.version>
<confluent.version>5.5.1</confluent.version>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>
<repositories>
<repository>
<id>apache.snapshots</id>
<name>Apache Development Snapshot Repository</name>
<url>https://repository.apache.org/content/repositories/snapshots/</url>
<releases>
<enabled>false</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
<repository>
<id>confluent</id>
<name>Confluent</name>
<url>https://packages.confluent.io/maven/</url>
</repository>
</repositories>
<!--
Execute "mvn clean package -Pbuild-jar"
to build a jar file out of this project!
-->
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>${maven.compiler.source}</source>
<target>${maven.compiler.target}</target>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.avro</groupId>
<artifactId>avro-maven-plugin</artifactId>
<version>${avro.version}</version>
<executions>
<execution>
<phase>generate-sources</phase>
<goals>
<goal>schema</goal>
</goals>
<configuration>
<sourceDirectory>${project.basedir}/src/main/resources/avro/</sourceDirectory>
<includes>
<include>SensorValue.avsc</include>
</includes>
<outputDirectory>${project.build.directory}/generated-sources</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>io.confluent</groupId>
<artifactId>kafka-schema-registry-maven-plugin</artifactId>
<version>${confluent.version}</version>
<configuration>
<schemaRegistryUrls>
<param>http://localhost:28081</param>
</schemaRegistryUrls>
<subjects>
<transactions-value>src/main/resources/avro/Sentence.avsc</transactions-value>
</subjects>
<outputDirectory/>
</configuration>
<goals>
<goal>test-compatibility</goal>
</goals>
</plugin>
</plugins>
<pluginManagement>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>${maven.compiler.source}</source>
<target>${maven.compiler.target}</target>
<compilerId>jdt</compilerId>
</configuration>
<dependencies>
<dependency>
<groupId>org.eclipse.tycho</groupId>
<artifactId>tycho-compiler-jdt</artifactId>
<version>0.21.0</version>
</dependency>
</dependencies>
</plugin>
<plugin>
<groupId>org.eclipse.m2e</groupId>
<artifactId>lifecycle-mapping</artifactId>
<version>1.0.0</version>
<configuration>
<lifecycleMappingMetadata>
<pluginExecutions>
<pluginExecution>
<pluginExecutionFilter>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<versionRange>[2.4,)</versionRange>
<goals>
<goal>single</goal>
</goals>
</pluginExecutionFilter>
<action>
<ignore/>
</action>
</pluginExecution>
<pluginExecution>
<pluginExecutionFilter>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<versionRange>[3.1,)</versionRange>
<goals>
<goal>testCompile</goal>
<goal>compile</goal>
</goals>
</pluginExecutionFilter>
<action>
<ignore/>
</action>
</pluginExecution>
</pluginExecutions>
</lifecycleMappingMetadata>
</configuration>
</plugin>
</plugins>
</pluginManagement>
</build>
<dependencies>
<!-- Apache Kafka dependencies -->
<dependency>
<groupId>org.apache.kafka</groupId>
<artifactId>kafka-streams</artifactId>
<version>${kafka.version}</version>
</dependency>
<dependency>
<groupId>org.apache.kafka</groupId>
<artifactId>kafka-clients</artifactId>
<version>${kafka.version}</version>
</dependency>
<!-- Dependencies below are required/recommended only when using Apache Avro. -->
<dependency>
<groupId>io.confluent</groupId>
<artifactId>kafka-avro-serializer</artifactId>
<version>${confluent.version}</version>
</dependency>
<dependency>
<groupId>org.apache.avro</groupId>
<artifactId>avro</artifactId>
<version>${avro.version}</version>
</dependency>
</dependencies>
</project>
此外,据我所见,maven配置正确:
Maven home: C:Usersitsscoopappsmavencurrent
Java version: 11.0.2, vendor: Oracle Corporation, runtime: C:Program FilesJavajdk-11.0.2
Default locale: de_AT, platform encoding: Cp1252
OS name: "windows 10", version: "10.0", arch: "amd64", family: "windows"
为了完整起见,主java类。我删除了原型中的所有其他代码片段:
package at.ac.fhsalzburg.datakmu.service;
public class DataPreProcessor {
public static void main(String[] args) {
//TODO
}
}
有人能帮忙吗?如果你需要任何进一步的意见,请告诉我!Thx
在pom.xml中,您有以下片段。要么在src/main/resources中创建avro文件夹,要么删除avro部分。然后进行mvn干净验证,以确保您的项目构建
<execution>
<phase>generate-sources</phase>
<goals>
<goal>schema</goal>
</goals>
<configuration>
<sourceDirectory>${project.basedir}/src/main/resources/avro/</sourceDirectory>
<includes>
<include>SensorValue.avsc</include>
</includes>
<outputDirectory>${project.build.directory}/generated-sources</outputDirectory>
</configuration>
</execution>