【问题标题】:Bundling generated classes into a jar and adding it to the build class-path将生成的类捆绑到一个 jar 中并将其添加到构建类路径中
【发布时间】:2019-05-24 18:10:43
【问题描述】:

我在 Java maven 环境中工作,在我的应用程序中,我使用 SomeFileName.wsdl 文件生成一些 Java 类。为此,我在 pom.xml 中添加了 maven 插件,以下是插件,

        <plugins>
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>build-helper-maven-plugin</artifactId>
                <executions>
                    <execution>
                        <id>add-source</id>
                        <phase>generate-sources</phase>
                        <goals>
                            <goal>add-source</goal>
                        </goals>
                        <configuration>
                            <sources>
                                <source>${project.build.directory}/generated-sources/folder-name</source>
                            </sources>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.jvnet.jax-ws-commons</groupId>
                <artifactId>jaxws-maven-plugin</artifactId>
                <executions>
                    <execution>
                        <id>some-id</id>
                        <phase>generate-sources</phase>
                        <goals>
                            <goal>wsimport</goal>
                        </goals>
                        <configuration>
                            <wsdlDirectory>src/main/webapp/WEB-INF/wsdl</folder-name>
                            <wsdlFiles>
                                <wsdlFile>SomeFileName.wsdl</wsdlFile>
                            </wsdlFiles>
                            <wsdlLocation>/WEB-INF/wsdl/*</wsdlLocation>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>

我的问题是,每当这个插件在 target/generated-sources/folder-name 下生成 java 类时,是否有任何 maven 插件或 maven 目标或其他可用方式,以便我可以将这些类捆绑到一个 jar 中并能够添加它jar 到我的类路径(构建路径)。这样,我就可以从新生成的 jar 中访问那些生成的类。

简单来说,当前使用 wsdl 插件类正在生成到我指定位置的目标文件夹中。我只想将这些生成的类捆绑到一个 jar 中并将该 jar 添加到构建路径中,有没有办法实现这一点?

【问题讨论】:

    标签: java maven jar wsdl maven-plugin


    【解决方案1】:

    我在一些 maven 项目中使用了 jax-ws,生成的 stub 中的类文件将简单地在目标文件夹中生成,就像其他类文件一样。生成的源配置仅影响生成的源。 .class 文件最终会出现在您的包结构中。我的建议是添加packageName 配置,这样您生成的类将放在一个更方便的包中。构建项目并成功导入 wsdl 后,您应该会在 targer 文件夹中看到 .class 文件。之后,jar 打包将像任何其他项目一样进行。这是一个示例配置(与您的非常相似):

                <plugin>
                <groupId>org.jvnet.jax-ws-commons</groupId>
                <artifactId>jaxws-maven-plugin</artifactId>
                <version>1.12</version>
                <executions>
                    <execution>
                        <goals>
                            <goal>wsimport</goal>
                        </goals>
                        <configuration>
                            <packageName>com.your.package</packageName>
                            <sourceDestDir>target/generated-sources/jaxws</sourceDestDir>
                            <verbose>true</verbose>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
    

    【讨论】:

      猜你喜欢
      • 2019-05-11
      • 1970-01-01
      • 2021-09-02
      • 2014-09-28
      • 2015-03-02
      • 2012-04-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多