如何构建v5.x Spring?如何将v5.x Spring导入IDEA?

时间:2017-06-01 09:33:12

标签: java spring intellij-idea

我想将v5.x Spring导入IDEA。

我按照文档import-into-idea.md运行命令./gradlew cleanIdea :spring-oxm:compileTestJava

然后,它会抛出错误。

如何将v5.x项目导入IDEA?

我尝试了不同的方式多次:

  1. 我将代码签出到 v4.3.8.RELEASE ,我运行命令./gradlew cleanIdea :spring-oxm:compileTestJava。没关系。
  2. 我将代码签出到 v5.0.0.RC1 ,我运行相同的命令。没关系。但是,当我将代码作为gradle项目导入IDEA时,IDEA会找到许多类,例如BeanFactory
  3. 我运行./gradlew clean :spring-oxm:compileTestJava(代码是v5.0.0.RC1),它会抛出许多错误。 命令为./gradlew clean :spring-oxm:compileTestJava
  4. 我向Spring JIRA报告问题:[SPR-15592] can not build the project. - Spring JIRA。我看了提交。提交者将命令从./gradlew cleanIdea :spring-oxm:compileTestJava更改为./gradlew :spring-oxm:compileTestJava。我测试了命令,但它仍然存在错误。

    我将项目导入IDEA的方式如下:

    1. 我运行命令./gradlew cleanIdea :spring-oxm:compileTestJava
    2. 当步骤1正常时,我打开IDEA,点击导入项目(或文件 - >新建 - >来自现有来源的项目)
    3. 选择spring-framework文件夹
    4. 选择Import project from the external model - > Gradle,点击Next
    5. 点击Finish,然后等待几分钟。
    6.   

      如果第1步抛出错误,我将代码导入IDEA,IDEA找到很多类,比如BeanFactory,我无法运行测试方法。

      通过这种方式,我可以将v4。* Spring导入IDEA并运行测试方法。但是我无法将v5。* Spring导入IDEA。

        

      如果我首先在v5.x Spring上运行命令./gradlew clean,我运行命令./gradlew :spring-oxm:compileTestJava抛出错误。

           

      如果代码是v4.x,则可以。

      我的发展环境:

      macOS 10.12.4
      
      IDEA is 2017.1.3.
      
      java -version
      java version "1.8.0_131"
      Java(TM) SE Runtime Environment (build 1.8.0_131-b11)
      Java HotSpot(TM) 64-Bit Server VM (build 25.131-b11, mixed mode)
      

      不要关心IJ。git checkout master,然后git pull,获取最新消息来源。 首先运行./gradlew clean,然后运行./gradlew :spring-oxm:compileTestJava,之后应该抛出错误。

      org.springframework.oxm.jaxb.test.FlightTypeorg.springframework.oxm.jaxb.test.Flightsorg.springframework.oxm.jaxb.test.ObjectFactory已导入Jaxb2MarshallerTestsJaxb2UnmarshallerTests。但我找不到org.springframework.oxm.jaxb.test包。我发现这些类是在/spring-oxm/src/test/resources/org/springframework/oxm/config/oxmNamespaceHandlerTest.xml中配置的。 该文件的含义是什么?如何生成这三个类?

      我发现了一些关于在build.gradle中生成测试类的问题:

      project("spring-oxm") {
      
      ...
      
          dependencies {
      
        ...
      
            testCompile("org.xmlunit:xmlunit-matchers:${xmlunitVersion}")
                testCompile(files(genCastor.classesDir).builtBy(genCastor))
                testCompile(files(genJaxb.classesDir).builtBy(genJaxb))
            testRuntime("xerces:xercesImpl:2.11.0")  // for Castor
            testRuntime("com.sun.xml.bind:jaxb-core:${jaxbVersion}")
            testRuntime("com.sun.xml.bind:jaxb-impl:${jaxbVersion}")
          }
      }
      

      我猜配置用于生成thress类。但我运行./gradlew :spring-oxm:compileTestJava,它没有生成thress类。 如何使用配置?

      错误日志为 log is here

1 个答案:

答案 0 :(得分:0)

我从github中删除了代码。然后我可以运行./gradlew :spring-oxm:compileTestJava。我比较两个代码来找出差异。