无法找到或加载在Eclipse上运行Scala 2.11 Maven项目的主类

时间:2018-10-19 10:11:08

标签: eclipse scala maven

我的问题是我无法在Eclipse IDE上运行我的Scala对象:错误找不到或加载主类

事实上,我之前曾设法使用Scala 2.12(项目/属性/ Scala编译器:Scala安装“最新2.12软件包(动态)”)运行它们,但是由于我想运行Spark Streaming作业,所以我无法保持运行不支持所需类的scala 2.12版本,我移至“最新2.11捆绑包(动态)”。

我在这个问题上进行了很多讨论,但是并没有解决我的问题。

我正在使用Java 8,Eclipse IDE版本:2018-09(4.9.0)。 我创建了一个scala项目,然后将其转换为Maven项目。 我可以向您展示我的以下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/maven-v4_0_0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<groupId>Scala.group</groupId>
	<artifactId>NewProject-maven</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<name>${project.artifactId}</name>
	<description>My wonderfull scala app</description>

	<repositories>
		<repository>
			<id>scala-tools.org</id>
			<name>Scala-Tools Maven2 Repository</name>
			<url>http://scala-tools.org/repo-releases</url>
		</repository>
	</repositories>
	<pluginRepositories>
		<pluginRepository>
			<id>scala-tools.org</id>
			<name>Scala-Tools Maven2 Repository</name>
			<url>http://scala-tools.org/repo-releases</url>
		</pluginRepository>
	</pluginRepositories>
	<properties>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
		<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
		<java.version>1.8</java.version>
		<scala.version>2.11.7</scala.version>
	</properties>
	<build>
		<plugins>
			<!--Configure maven-compiler-plugin to use the desired Java version -->
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-compiler-plugin</artifactId>
				<version>3.8.0</version>
				<configuration>
					<source>${java.version}</source>
					<target>${java.version}</target>
				</configuration>
			</plugin><!-- Use build-helper-maven-plugin to add Scala source and test 
				source directories -->
			<plugin>
				<groupId>org.codehaus.mojo</groupId>
				<artifactId>build-helper-maven-plugin</artifactId>
				<version>3.0.0</version>
				<executions>
					<execution>
						<id>add-source</id>
						<phase>generate-sources</phase>
						<goals>
							<goal>add-source</goal>
						</goals>
						<configuration>
							<sources>
								<source>src/main/scala</source>
							</sources>
						</configuration>
					</execution>
					<execution>
						<id>add-test-source</id>
						<phase>generate-test-sources</phase>
						<goals>
							<goal>add-test-source</goal>
						</goals>
						<configuration>
							<sources>
								<source>src/test/scala</source>
							</sources>
						</configuration>
					</execution>
				</executions>
			</plugin><!-- Use scala-maven-plugin for Scala support -->
			<plugin>
				<groupId>net.alchim31.maven</groupId>
				<artifactId>scala-maven-plugin</artifactId>
				<version>3.2.2</version>
				<executions>
					<execution>
						<goals><!-- Need to specify this explicitly, otherwise plugin won't 
								be called when doing e.g. mvn compile -->
							<goal>compile</goal>
							<goal>testCompile</goal>
						</goals>
					</execution>
				</executions>
			</plugin>
		</plugins>
	</build>


	<dependencies>

		<!-- https://mvnrepository.com/artifact/org.scala-lang/scala-library -->
		<dependency>
			<groupId>org.scala-lang</groupId>
			<artifactId>scala-library</artifactId>
			<version>2.11.7</version>
		</dependency>


		<!-- Test -->
		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<version>4.11</version>
			<scope>test</scope>
		</dependency>
		<!-- https://mvnrepository.com/artifact/org.apache.kafka/kafka-clients -->
		<dependency>
			<groupId>org.apache.kafka</groupId>
			<artifactId>kafka-clients</artifactId>
			<version>1.1.1</version>
		</dependency>
		<!-- https://mvnrepository.com/artifact/org.apache.kafka/kafka-streams -->
		<dependency>
			<groupId>org.apache.kafka</groupId>
			<artifactId>kafka-streams</artifactId>
			<version>1.1.1</version>
		</dependency>

		<!-- https://mvnrepository.com/artifact/org.apache.kafka/kafka-log4j-appender -->
		<dependency>
			<groupId>org.apache.kafka</groupId>
			<artifactId>kafka-log4j-appender</artifactId>
			<version>1.1.1</version>
		</dependency>

		<!-- https://mvnrepository.com/artifact/org.apache.spark/spark-streaming-kafka -->
		<dependency>
			<groupId>org.apache.spark</groupId>
			<artifactId>spark-streaming-kafka_2.11</artifactId>
			<version>1.6.3</version>
		</dependency>

		<!-- https://mvnrepository.com/artifact/org.apache.spark/spark-streaming -->
		<dependency>
			<groupId>org.apache.spark</groupId>
			<artifactId>spark-streaming_2.11</artifactId>
			<version>1.6.3</version>
			<scope>provided</scope>
		</dependency>

		<!-- https://mvnrepository.com/artifact/org.apache.spark/spark-core -->
		<dependency>
			<groupId>org.apache.spark</groupId>
			<artifactId>spark-core_2.11</artifactId>
			<version>1.6.3</version>
		</dependency>

	</dependencies>


</project>

该项目似乎是通过(Eclipse project explorer window picture)好的方式构建的,没有错误或警告,没有帮助我理解我的问题。

我尝试运行的对象是Hello世界:

package Scala.group.NewProject

object HelloW {
  def main(args: Array[String]): Unit = {
    println("Hello my little world")
  }
}

当我右键单击它并转到“运行”选项时,Eclipse不建议使用“ scala应用程序”,而仅运行“配置...”。我输入主类:“ scalagroupNewProject.HelloW”,因为我无法通过搜索按钮找到它。

我在eclipse上安装了scala IDE,感谢执行以下步骤:Getting started with Eclipse scala IDE。我下载了针对Eclipse download current version的最新版本的scala IDE(我没有设法安装较旧的版本,因为我无法加载older zip files,因为它们不是.jar归档文件或链接。

如果您有想法或遇到同样的问题,我可以回答或显示其他信息。如果您能解决我的问题,或者只是给我一些说明/信息,我将非常感激。

谢谢

托马斯

0 个答案:

没有答案