Spring STS 尝试设置 Spring 集成示例时出现 POM 错误

POM error in Spring STS trying to set-up Spring Integration Sample

Spring 引导/Spring 集成示例项目:cafe-dsl

错误信息: 缺少工件 org.springframework.integration.samples:cafe-si:jar:4.1.0.BUILD-SNAPSHOT

说明:安装SpringSTS(3.7)后安装maven(3.3)项目cafe-dsl。我收到上面的错误消息。我正在使用嵌入 Spring STS 的 Maven。是否需要额外配置一些内容才能正确构建项目?

GIT 回购:https://github.com/spring-projects/spring-integration-samples.git

由于您这个项目 (cafe-dsl) 需要另一个 Spring 集成示例项目:

<dependency>
  <groupId>org.springframework.integration.samples</groupId>
  <artifactId>cafe-si</artifactId>
  <version>4.1.0.BUILD-SNAPSHOT</version>
  <scope>compile</scope>
</dependency>

因为它是一个 BUILD-SNAPSHOT 并且您不想打开整个 Spring Integration Samples 项目,您应该将 snapshot 存储库添加到 POM:

<repository>
  <id>repo.spring.io.snapshot</id>
  <name>Spring Framework Maven Snapshot Repository</name>
  <url>https://repo.spring.io/libs-snapshot</url>
</repository>

更新

之前关于 libs-snapshot 的表述以及对 cafe-si 的依赖是错误的。由于我们不 install 那些示例项目作为 Maven 存储库的工件,所以它不会那样工作。

我可以确认它仅在这些操作后有效:

  1. gredlew install 来自 Spring 集成示例的根
  2. cafe-dsl POM 的修改:

    <plugin>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-maven-plugin</artifactId>
        <configuration>
             <mainClass>org.springframework.integration.samples.dsl.cafe.lambda.Application</mainClass>
        </configuration>        
      </plugin>
       <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.3</version>
        <configuration>
          <source>1.8</source>
          <target>1.8</target>
        </configuration>
      </plugin>
    
  3. 而这个 Maven 命令:

      mvn spring-boot:run
    

即使我们可以从项目的角度修复 POM 生成,我也不确定 install 这些工件之后会不会到 libs-snapshot 存储库...

只靠Gradle怎么样?