将生成的 classes 打包到一个 jar 中并将其添加到构建 class-path
Bundling generated classes into a jar and adding it to the build class-path
我在 Java maven 环境中工作,在我的应用程序中,我正在使用 SomeFileName.wsdl 文件生成一些 java classes。为此,我将 maven 插件添加到 pom.xml,以下是插件,
<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 classes 时,是否有任何 maven 插件或 maven 目标或其他可用的方式,以便我可以将这个 classes 打包到一个 jar 中,然后可以将该 jar 添加到我的 class-path(build-path) 中。这样,我就可以从新生成的 jar 中访问那些生成的 classes。
简而言之,当前使用的 wsdl 插件 classes 正在生成到我指定位置的目标文件夹中。我只想将那些生成的 classes 打包到一个 jar 中,然后将该 jar 添加到构建路径中,是否有办法实现这一点?
我在一些 Maven 项目中使用了 jax-ws,生成的存根中的 class 文件将简单地生成在目标文件夹中,就像其他 class 文件一样。生成的源配置只影响生成的源。 .class 文件将最终出现在您的包结构中。我的建议是添加 packageName
配置,这样您生成的 classes 将位于更方便的包中。构建项目并成功导入 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>
我在 Java maven 环境中工作,在我的应用程序中,我正在使用 SomeFileName.wsdl 文件生成一些 java classes。为此,我将 maven 插件添加到 pom.xml,以下是插件,
<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 classes 时,是否有任何 maven 插件或 maven 目标或其他可用的方式,以便我可以将这个 classes 打包到一个 jar 中,然后可以将该 jar 添加到我的 class-path(build-path) 中。这样,我就可以从新生成的 jar 中访问那些生成的 classes。
简而言之,当前使用的 wsdl 插件 classes 正在生成到我指定位置的目标文件夹中。我只想将那些生成的 classes 打包到一个 jar 中,然后将该 jar 添加到构建路径中,是否有办法实现这一点?
我在一些 Maven 项目中使用了 jax-ws,生成的存根中的 class 文件将简单地生成在目标文件夹中,就像其他 class 文件一样。生成的源配置只影响生成的源。 .class 文件将最终出现在您的包结构中。我的建议是添加 packageName
配置,这样您生成的 classes 将位于更方便的包中。构建项目并成功导入 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>