我对maven很陌生。我使用wsdl2java来获取Java文件,然后创建我需要的jar文件。问题是我的网址来自不同的来源,最终我需要4个不同的jar文件。如何用wsdl2java创建两个独立的jar包?
到目前为止,我尝试创建前两个jar文件,并在接下来的两个日后处理...所以我在“build”块中创建了两个不同的“执行”块;每个“执行”块下载每个自己的wsdl文件,到目前为止这么好。以下插件:
org.codehaus.mojo axistools - Maven的插件
作品是这样的:它首先编译所有生成的Java文件,然后生成jar文件的所有文件,这意味着它会创建只有一个jar文件。
是否有无论如何,我要求wsdl2java编译,然后在每个“执行”块后立即创建jar文件?我可以得到两个不同的jar文件,每个只与我在那个“执行”块中下载的wsdl文件有关?
以下是pom.xml。此时生成的jar文件由从file1,file2,file3,file4和file5生成的Java文件组成。
我想从一个jar文件:file1,file2和file3,另一个来自:file4和file5。
任何帮助将不胜感激。
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>axistools-maven-plugin</artifactId>
<version>1.4</version>
<dependencies>
<dependency>
<groupId>javax.mail</groupId>
<artifactId>mail</artifactId>
<version>1.4.1</version>
</dependency>
<dependency>
<groupId>javax.activation</groupId>
<artifactId>activation</artifactId>
<version>1.1</version>
</dependency>
</dependencies>
<executions>
<execution>
<id>prod</id>
<goals>
<goal>wsdl2java</goal>
</goals>
<configuration>
<urls>
<url>https://file1.svc?wsdl</url>
<url>https://file2.svc?wsdl</url>
<url>https://file3.svc?wsdl</url>
</urls>
<allElements>true</allElements>
<wrapArrays>false</wrapArrays>
<testCases>false</testCases>
<serverSide>false</serverSide>
<typeMappingVersion>1.2</typeMappingVersion>
</configuration>
</execution>
<execution>
<id>sandbox</id>
<goals>
<goal>wsdl2java</goal>
</goals>
<configuration>
<sourceDirectory>${basedir}/wsdl</sourceDirectory>
<useEmitter>true</useEmitter>
<wsdlFiles>
<wsdlFile>file4.wsdl</wsdlFile>
<wsdlFile>file5.wsdl</wsdlFile>
</wsdlFiles>
<allElements>true</allElements>
<wrapArrays>false</wrapArrays>
<testCases>false</testCases>
<serverSide>false</serverSide>
<typeMappingVersion>1.2</typeMappingVersion>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
自太长了评论,我不得不修改原来的职位...
感谢您的答复。我曾尝试过你的解决方案。如您所知,“axistools-maven-plugin”内置了“maven-compiler-plugin”和“maven-jar-plugin”。它首先从指定的url下载所有wsdl文件。它创建不同的输出目录;然而,在编译阶段,它会尝试立即编译所有输出目录中的所有Java文件;因为有一些常见的Java文件。这些wsdl文件,它会在编译时给出“重复的类”错误。
我们可以定义我们自己定制的“maven-compiler-plugin”和“maven-jar-plugin”块并添加“include”或“exclude”块,让maven知道要编译哪些文件以及如何创建jar文件,但由于“axistools-maven-plugin”首先运行自己的“maven-compiler-plugin”,它会首先编译所有的Java文件,并且在之前仍会给出“重复类”错误它看起来像我们的“maven -compiler-plugin“和”maven-jar-plugin“块。
另一条评论...在我可以为maven-jar-plugin创建不同的“执行”块之前,我需要让wsdl2java知道在哪里编译类;这意味着我必须为maven-compiler-plugin提供不同的“执行”块。但问题是,我不知道如何定义编译类的目录,除了默认的目标/类和目标/测试类?请记住,我需要创建4个不同的jar,所以我需要为maven-compiler-plugin提供四个“执行”块,为maven-jar-plugin提供四个“执行”块。但那么如何拥有类的自定义目标目录? – blueSky
我想知道这是否会更好地作为多模块构建4个独立的项目。 – user944849