【问题标题】:Maven pom.xml Spring Boot does not existMaven pom.xml Spring Boot 不存在
【发布时间】:2018-08-15 05:55:01
【问题描述】:

我是 java 世界的新手。我的 SpringApplication Runner 类上有这个错误“包 org.springframework.boot 不存在”。但是我在 pom.xml 中添加了 Spring Boot 依赖项 我不明白为什么会出现这个错误。

pom.xml

    <dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-jpa</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-jersey</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-security</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
        <groupId>javax.transaction</groupId>
        <artifactId>javax.transaction-api</artifactId>
        <version>1.2</version>
    </dependency>
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <scope>runtime</scope>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>org.springframework.security</groupId>
        <artifactId>spring-security-test</artifactId>
        <scope>test</scope>
    </dependency>
</dependencies>

用户道

    @Repository
public class UsersDao {

    @PersistenceContext
    private EntityManager entityManager;

    public void save(Users users){
        entityManager.persist(users);
    }

}

用户DTO

public class UsersDto {

private Integer id;
private String name;
private String surname;
private String username;
private Boolean isSuperUser;
private String email;
private String password;
private Date created_at;
private Date updated_at;


public UsersDto(){

}

public UsersDto(Users users){
    this.id = users.getId();
    this.name = users.getName();
    this.surname = users.getSurname();
    this.email = users.getEmail();
    this.isSuperUser = users.getSuperUser();
    this.username = users.getUsername();
    this.password = users.getPassword();
}//AND GETTER&SETTER

用户资源

    @Component
@Path("/users")
public class UsersResources {
    @Autowired
    UsersService usersService;

    @POST
    @Produces(MediaType.APPLICATION_JSON)
    @Consumes(MediaType.APPLICATION_JSON)
    public Response saveCity(UsersDto usersDto){
        Users users;

        try{
            users = usersService.saveUsers(usersDto);

        }catch (Exception e){
            return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
        }
        return Response.ok(users).build();
    }

}

和用户服务

    @Service
public class UsersService {

    @Autowired
    private UsersDao usersDao;

    @Transactional
    public Users saveUsers(UsersDto usersDto){

        Users users = new Users();
        users.setName(usersDto.getName());
        users.setEmail(usersDto.getEmail());
        users.setSuperUser(usersDto.getSuperUser());
        users.setSurname(usersDto.getSurname());
        users.setPassword(usersDto.getPassword());
        usersDao.save(users);

        return users;
    }

}

用户模型

@Entity
@Table(name="users")
public class Users implements Serializable {
    @Id
    @GeneratedValue(strategy=GenerationType.IDENTITY)
    @Column(name="id")
    private Integer id;

    @Column(name="name")
    private String name;

    @Column(name="surname")
    private String surname;

    @Column(name="username")
    private String username;

    @Column(name="password")
    private String password;

    @Column(name="is_super_user")
    private Boolean isSuperUser;

    @Column(name="email")
    private String email;


    @Column(name="created_at")
    private Date created_at;

    @Column(name="updated_at")
    private Date updated_at;


    @PrePersist
    protected void onCreate() {
        created_at = new Date();
    }

    @PreUpdate
    protected void onUpdate() {
        updated_at = new Date();
    }

我的错在哪里?我该如何解决?我想问类似的问题。有时我们会遇到一些错误但我找不到它。所以我们理解这个错误的原因是 pom.xml 依赖冲突。但是没有maven上的错误。由于不兼容的依赖关系,我们很累。有没有防止依赖冲突的解决方案?(如maven依赖验证器)

【问题讨论】:

  • 这可能是一个 Maven 依赖问题,清理一个 Maven 然后更新项目,看看现在你是否得到了 org.springframework.boot。我建议创建一个干净的项目start.spring.io 并查看您添加的哪些依赖项可能会发生冲突。
  • 您的 spring boot 版本使用另一个版本的 spring-framework(高于 4.0.2.RELEASE)。从你的 pom 中删除 标签。
  • 使用 STS 创建 Spring Boot 项目

标签: java spring maven spring-boot


【解决方案1】:

使用 Spring Boot 更简单的方法是使用 Spring Initiliazr https://start.spring.io/ 创建一个 Spring Boot 项目。您可以从这里创建一个 maven 项目,该项目已经修补了 Spring Boot 或更多其他依赖项。

【讨论】:

  • 我正在启动这个网站。然后我得到'错误创建在类路径资源中定义的名称为'entityManagerFactory'的bean'错误。有人告诉我使用这个依赖,我做到了。这个问题解决了但后来我得到了弹簧启动错误
  • 您应该从 spring initializr 中的一些启动项目开始,然后在需要时将依赖项添加到 pom.xml。现在你的 pom.xml 很大并且有很多依赖,这会导致冲突。在 spring initialzr 中,您可以为您的项目使用更多启动器,例如 WEB starter(包含 Spring MVC、Spring Core 等)和 Data-JPA(包含 spring-jdbc、spring-jpa 等)。使用它
  • 谢谢老兄。我会试试的
  • 如果您在创建具有一些依赖项的稳定项目后还有其他问题,我在这里寻求帮助
  • 我在这个网站上准备了我的依赖项。我得到了“java.lang.ClassNotFoundException:javax.transaction.SystemException”“BeanCreationException:创建类路径资源中定义的名称为“entityManagerFactory”的bean时出错”我做不明白我在谷歌上尝试了所有解决方案
【解决方案2】:

如果您刚刚开始,为什么不使用https://start.spring.io/ 生成项目。

您添加了核心 Spring 依赖项,但没有添加单个 Spring Boot 依赖项。你只有一个 Spring Boot BOMparent,它们只使用 &lt;dependencyManagement&gt; 管理依赖项。你可以通过运行mvn dependency:tree来检查你的依赖。

【讨论】:

    猜你喜欢
    • 2015-11-12
    • 2017-08-27
    • 2018-05-01
    • 2019-02-15
    • 2022-10-18
    • 2019-06-25
    • 2016-03-07
    • 2021-08-04
    • 2020-09-23
    相关资源
    最近更新 更多