Spring Boot Maven多模块项目:编译失败找不到符号

时间:2020-05-10 09:26:59

标签: java spring spring-boot maven maven-module

我用父pom创建了一个多模块spring boot项目。 在模块测试数据中,我添加了一些实体类用户和登录名:

@Dao
interface LocationDao {
...
    @Query(speedSql)
    fun speed(runId: Long): LiveData<Float>
}

User类:

@Table
@Entity
public class Login implements Serializable {
    ... another column
    @Column(unique = true, columnDefinition = "VARCHAR(50)", nullable = false)
    private String username;
    @JsonIgnore
    @OneToOne(mappedBy = "login")
    private User user;
    // getter and setter

模块test-data的pom.xml:

@Table
@Entity
public class User implements Serializable{
...
    @OneToOne(cascade = CascadeType.ALL)
    @JoinColumn(referencedColumnName = "login_id")
    private Login login;
...

测试数据的主要类别:

 <parent>
        <groupId>com.emo.test</groupId>
        <artifactId>emo-parent</artifactId>
        <version>1.0-SNAPSHOT</version>
        <relativePath/>
    </parent>

    <artifactId>test-data</artifactId>
    <version>0.1-SNAPSHOT</version>
    <packaging>jar</packaging>
    <description>Demo project for Spring Boot</description>

    <dependencies>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <scope>runtime</scope>
        </dependency>
        // other dependencies
    </dependencies>

test-oauth的主要类别:

package com.test;

import org.springframework.boot.CommandLineRunner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.Bean;

@SpringBootApplication
public class TestApplication {

    public static void main(String[] args) {
        SpringApplication.run(TestApplication.class, args);
    }

我在第二个模块test-oauth中将模块test-data添加为像这样的依赖项:

package com.oauth.server;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class OAuthApplication {

    public static void main(String[] args) {
        SpringApplication.run(OAuthApplication.class, args);
    }

在模块test-oauth中,我使用实体User:

<modelVersion>4.0.0</modelVersion>

    <parent>
        <groupId>com.emo.test</groupId>
        <artifactId>emo-parent</artifactId>
        <version>1.0-SNAPSHOT</version>
        <relativePath/>
    </parent>

    <artifactId>test-oauth</artifactId>
    <version>0.1-SNAPSHOT</version>
    <packaging>jar</packaging>

    <name>test-oauth</name>
    <url>http://maven.apache.org</url>

    <dependencies>
        <dependency>
            <groupId>com.emo.test</groupId>
            <artifactId>test-data</artifactId>
            <version>0.1-SNAPSHOT</version>
            <exclusions>
                <exclusion>
                    <groupId>org.liquibase</groupId>
                    <artifactId>liquibase-core</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
    </dependencies>

我遇到了以下异常:@Transactional @Service("userServiceImpl") public class UserServiceImpl { @PersistenceContext private EntityManager entityManager; public User findByUsername(String username) throws EmptyResultDataAccessException { String query = "FROM Login l WHERE l.username = :username"; final Login l = (Login) entityManager.createQuery(query).setParameter("username", username).getSingleResult(); return l.getUser(); } }

我的父母pom.xml

Compilation failure: Compilation failure: cannot find symbol User,  package com.test.core.entities does not exist

0 个答案:

没有答案