gpt4 book ai didi

eclipse - Scala 导入编译器错误

转载 作者:行者123 更新时间:2023-12-02 10:47:13 25 4
gpt4 key购买 nike

我使用 Maven + Eclipse + M2e + Scala,我注意到编译器在 eclipse 和 maven 命令行中的不同行为。

例如 maven(命令行)提示如下:

[ERROR] /home/julien/Documents/donnees/projets/site-garde-enfants/java/service/src/test/scala/com/bignibou/dao/DAOTest.scala:18: error: AdvertisementService is not a member of com.bignibou.service.advertisement
[INFO] import com.bignibou.service.advertisement.AdvertisementService
[INFO] ^

而我在eclipse中没有得到任何编译器错误......

有人可以帮忙吗?

这是我的POM:
<?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>
<parent>
<groupId>com.bignibou</groupId>
<artifactId>bignibou</artifactId>
<version>1.0-SNAPSHOT</version>
</parent>
<groupId>com.bignibou</groupId>
<artifactId>bignibou-service</artifactId>
<version>1.0-SNAPSHOT</version>
<name>bignibou-service</name>

<!-- Shared version number properties -->
<properties>
<org.springframework.version>3.1.0.RELEASE</org.springframework.version>
</properties>

<dependencies>
<!-- Core utilities used by other modules. Define this if you use Spring
Utility APIs (org.springframework.core.*/org.springframework.util.*) -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>${org.springframework.version}</version>
</dependency>

<!-- Expression Language (depends on spring-core) Define this if you use
Spring Expression APIs (org.springframework.expression.*) -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-expression</artifactId>
<version>${org.springframework.version}</version>
</dependency>

<!-- Bean Factory and JavaBeans utilities (depends on spring-core) Define
this if you use Spring Bean APIs (org.springframework.beans.*) -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<version>${org.springframework.version}</version>
</dependency>

<!-- Aspect Oriented Programming (AOP) Framework (depends on spring-core,
spring-beans) Define this if you use Spring AOP APIs (org.springframework.aop.*) -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aop</artifactId>
<version>${org.springframework.version}</version>
</dependency>

<!-- Application Context (depends on spring-core, spring-expression, spring-aop,
spring-beans) This is the central artifact for Spring's Dependency Injection
Container and is generally always defined -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${org.springframework.version}</version>
</dependency>

<!-- Various Application Context utilities, including EhCache, JavaMail,
Quartz, and Freemarker integration Define this if you need any of these integrations -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
<version>${org.springframework.version}</version>
</dependency>

<!-- Transaction Management Abstraction (depends on spring-core, spring-beans,
spring-aop, spring-context) Define this if you use Spring Transactions or
DAO Exception Hierarchy (org.springframework.transaction.*/org.springframework.dao.*) -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<version>${org.springframework.version}</version>
</dependency>

<!-- JDBC Data Access Library (depends on spring-core, spring-beans, spring-context,
spring-tx) Define this if you use Spring's JdbcTemplate API (org.springframework.jdbc.*) -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>${org.springframework.version}</version>
</dependency>

<!-- Object-to-Relation-Mapping (ORM) integration with Hibernate, JPA,
and iBatis. (depends on spring-core, spring-beans, spring-context, spring-tx)
Define this if you need ORM (org.springframework.orm.*) -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-orm</artifactId>
<version>${org.springframework.version}</version>
</dependency>

<!-- Object-to-XML Mapping (OXM) abstraction and integration with JAXB,
JiBX, Castor, XStream, and XML Beans. (depends on spring-core, spring-beans,
spring-context) Define this if you need OXM (org.springframework.oxm.*) -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-oxm</artifactId>
<version>${org.springframework.version}</version>
</dependency>

<!-- Web application development utilities applicable to both Servlet and
Portlet Environments (depends on spring-core, spring-beans, spring-context)
Define this if you use Spring MVC, or wish to use Struts, JSF, or another
web framework with Spring (org.springframework.web.*) -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>${org.springframework.version}</version>
</dependency>

<!-- Support for testing Spring applications with tools such as JUnit and
TestNG This artifact is generally always defined with a 'test' scope for
the integration testing framework and unit testing stubs -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>${org.springframework.version}</version>
<scope>test</scope>
</dependency>

<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-jpa</artifactId>
<version>1.0.3.RELEASE</version>
</dependency>

<dependency>
<groupId>commons-dbcp</groupId>
<artifactId>commons-dbcp</artifactId>
<version>1.3</version>
</dependency>

<dependency>
<groupId>com.bignibou</groupId>
<artifactId>bignibou-domain</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.6</version>
</dependency>
<dependency>
<groupId>commons-collections</groupId>
<artifactId>commons-collections</artifactId>
<version>3.1</version>
</dependency>
<dependency>
<groupId>javax.mail</groupId>
<artifactId>mail</artifactId>
<version>1.4.4</version>
</dependency>
<dependency>
<groupId>org.apache.velocity</groupId>
<artifactId>velocity</artifactId>
<version>1.7</version>
</dependency>
<dependency>
<groupId>org.apache.velocity</groupId>
<artifactId>velocity-tools</artifactId>
<version>2.0</version>
</dependency>
<dependency>
<groupId>org.scala-lang</groupId>
<artifactId>scala-library</artifactId>
<version>2.9.1</version>
</dependency>
</dependencies>
<build>
<sourceDirectory>src/main/scala</sourceDirectory>
<testSourceDirectory>src/test/scala</testSourceDirectory>
<resources>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*.xml</include>
<include>**/*.htm</include>
<include>**/*.properties</include>
</includes>
</resource>
</resources>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.eclipse.m2e</groupId>
<artifactId>lifecycle-mapping</artifactId>
<version>1.0.0</version>
<configuration>
<lifecycleMappingMetadata>
<pluginExecutions>
<pluginExecution>
<pluginExecutionFilter>
<groupId>org.scala-tools</groupId>
<artifactId>maven-scala-plugin</artifactId>
<versionRange>[2.15.0,)</versionRange>
<goals>
<goal>test-compile</goal>
<goal>compile</goal>
</goals>
</pluginExecutionFilter>
<action>
<execute />
</action>
</pluginExecution>
</pluginExecutions>
</lifecycleMappingMetadata>
</configuration>
</plugin>
</plugins>
</pluginManagement>
<plugins>
<plugin>
<groupId>org.scala-tools</groupId>
<artifactId>maven-scala-plugin</artifactId>
<version>2.15.0</version>
<executions>
<execution>
<goals>
<goal>compile</goal>
<goal>testCompile</goal>
</goals>
</execution>
</executions>
<configuration>
<includes>
<include>**/*Test.*</include>
</includes>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>

和我的斯卡拉类(class):
package com.bignibou.dao

import java.sql.Timestamp
import java.util.ArrayList
import java.util.Collection
import java.util.Date
import java.util.List

import javax.inject.Inject

import org.junit.Test
import org.junit.runner.RunWith
import org.springframework.test.context.ContextConfiguration
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner

import com.bignibou.domain._
import com.bignibou.oldDao.DAO
import com.bignibou.service.advertisement.AdvertisementService

@RunWith(classOf[SpringJUnit4ClassRunner])
@ContextConfiguration(Array("classpath:bignibou-configuration-context.xml"))
class DAOTest {

@Inject
val dao: DAO

@Inject
val advertisementService: AdvertisementService

@Test
def testPersistChildminderAdvertisement = {
val childminderAdvertisement: ChildminderAdvertisement = new ChildminderAdvertisement

val availabilities = new ArrayList[AdvertisementToTimeSlotToDayJoin]

val avail_1: AdvertisementToTimeSlotToDayJoin = new AdvertisementToTimeSlotToDayJoin
avail_1.setAdvertisement(childminderAdvertisement)
avail_1.setDay(new Day(2))
avail_1.setTimeSlot(new TimeSlot(3))

val avail_2: AdvertisementToTimeSlotToDayJoin = new AdvertisementToTimeSlotToDayJoin
avail_2.setAdvertisement(childminderAdvertisement)
avail_2.setDay(new Day(1))
avail_2.setTimeSlot(new TimeSlot(1))

availabilities.add(avail_1)
availabilities.add(avail_2)

childminderAdvertisement.setAdvertisementToTimeSlotToDayJoinCollection(availabilities)

// childcarelocation
val childCareLocation: ChildCareLocation = new ChildCareLocation(2)
childminderAdvertisement.setChildcarelocationID(childCareLocation)

// childcaretype
val childCareType_one: ChildCareType = new ChildCareType
childCareType_one.setChildcaretypeID(1)
val childCareType_two: ChildCareType = new ChildCareType()
childCareType_two.setChildcaretypeID(3)
val col: Collection[ChildCareType] = new ArrayList[ChildCareType]()

col.add(childCareType_one)
col.add(childCareType_two)

childminderAdvertisement.setChildCareTypeCollection(col)

// misc
childminderAdvertisement.setAdvertisementTitle("titre mlqkjflmkqsdf")
childminderAdvertisement.setAdvertisementBody("sdlkfj toto est beau")
childminderAdvertisement.setAdvertisementCreationDate(new Timestamp(new Date().getTime()))
val childminderAccount: Account = dao.loadAccountFromAccountEmailAddress("balteo@yahoo.fr")
childminderAdvertisement.setAccountID(childminderAccount)

advertisementService.persistChildminderAdvertisement(childminderAdvertisement)
}
}

最佳答案

如果你想在 Maven 中编译你的 Scala 类,你必须添加一个合适的插件。没有插件,类不会被编译。 Maven 对提供的 POM 行为正确...

 <plugin>
<groupId>org.scala-tools</groupId>
<artifactId>maven-scala-plugin</artifactId>
<version>2.15.2</version>
<configuration>
<args>
<arg>-optimise</arg>

</args>
<scalaVersion>2.9.1</scalaVersion>
<!--fork>false</fork-->

</configuration>
<executions>


<execution>
<id>compile</id>
<goals>
<goal>compile</goal>
</goals>
<phase>compile</phase>
</execution>
<execution>
<id>test-compile</id>
<goals>
<goal>testCompile</goal>
</goals>
<phase>test-compile</phase>
</execution>
<execution>
<phase>process-resources</phase>
<goals>
<goal>compile</goal>
</goals>
</execution>
</executions>
</plugin>

关于eclipse - Scala 导入编译器错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9434153/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com