How to access resources in jar where it can be present in multiple jar

前端 未结 2 1494
情书的邮戳
情书的邮戳 2021-01-13 21:09

I have a project where I generate lots of code against many XSD. To keep things separate each set of XSD are bundled together within a project. I have multiple project tha

2条回答
  •  误落风尘
    2021-01-13 21:44

    I usually make it a rule to add a resource directory into each JAR with resources that are unique to that JAR held under it. For example (in the Maven structure)

    module1/src/main/resources/module1/example.xsd
    module2/src/main/resources/module2/example.xsd
    

    The XSDs are then referenced using

    InputStream module1XSD= SomeClass.class.getResourceAsStream("/module1/example.xsd");
    InputStream module2XSD= SomeClass.class.getResourceAsStream("/module2/example.xsd");
    

    so long as the JARs for module1 and module2 have been placed on the classpath of the application containing SomeClass.

    Spring contexts would reference these as

    classpath:module1/example.xsd,
    classpath:module2/example.xsd
    

    This does mean that you'll have to be able to move the location of XSDs in the JARs that you generate. Maybe even regenerating them through a build script.

提交回复
热议问题