【问题标题】:maven-ejb-plugin: include generated sourcesmaven-ejb-plugin:包括生成的源
【发布时间】:2012-10-25 13:39:39
【问题描述】:

我有一个 EJB-maven-Project,它有一些生成的类(由 JAXB 生成)。 它们生成为:target/generated-sources/jaxb/

现在,我希望使用 maven-ejb-plugin 将它们(即它们的编译类)包含到客户端 jar 中,类似这样:

       <plugin>
            <artifactId>maven-ejb-plugin</artifactId>
            <version>2.3</version>
            <configuration>
                <!-- Tell Maven we are using EJB 3.1 -->
                <ejbVersion>3.1</ejbVersion>
                <generateClient>true</generateClient>
                <clientIncludes>
                    <clientInclude>com/bla/ch/authorization/client/**</clientInclude>
                    <clientInclude>target/generated-sources/jaxb/**</clientInclude>
                </clientIncludes>
            </configuration>
        </plugin>

这不起作用,生成的类不是 ejb-client-jar 的一部分。 (虽然它们在 ejb-jar 中)。 我怎样才能正确地做到这一点?

【问题讨论】:

    标签: maven


    【解决方案1】:

    在你的 jar 中包含源代码可能不是一个好的解决方案。

    您可以在资源位置添加生成的源,然后使用 source-plugin 生成所谓的 artifact-sources.jar

    <resources>
        <resource>
            <directory>${basedir}/target/generated-sources</directory>
            <filtering>true</filtering>
        </resource>
    </resources>
         [...]
    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-source-plugin</artifactId>
                <executions>
                    <execution>
                        <id>attach-sources</id>
                        <goals>
                            <goal>jar</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
    

    这比使用源代码生成 jar 更好。

    【讨论】:

    • 对不起,我不够精确。当然,我不希望源文件在我的 jar 中(这是另一个问题),而是生成源文件的编译类。这些课程自动包含在我的authorization-ejb-0.0.1-SNAPSHOT.jar 中 - 但不在我的authorization-ejb-0.0.1-SNAPSHOT-client.jar
    • 可能是一个解决方案:根据mojo.codehaus.org/jaxb2-maven-plugin/xjc-mojo.html,让我们将代码生成到正常的src-location,即src/main/java,并将其作为&lt;clientIncludes&gt;包含在maven-ejb-plugin中。跨度>
    • 也许,这会有所帮助:stackoverflow.com/questions/8587353/…
    猜你喜欢
    • 2019-08-11
    • 1970-01-01
    • 1970-01-01
    • 2018-02-18
    • 1970-01-01
    • 1970-01-01
    • 2022-01-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多