我们已经设置了一个项目来使用Maven Release Plugin,其中包括一个解包从Artifactory中提取的JAR XML模式的阶段以及一个生成XJC类的阶段。我们正在使用maven 2.2.1。
不幸的是后一阶段在前者之前执行,这意味着它没有为模式生成XJC类。部分POM.XML看起来像:
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.6</source>
<target>1.6</target>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<id>unpack</id>
<!-- phase>generate-sources</phase -->
<goals>
<goal>unpack</goal>
<goal>copy</goal>
</goals>
<configuration>
<artifactItems>
<artifactItem>
<groupId>ourgroupid</groupId>
<artifactId>ourschemas</artifactId>
<version>5.1</version>
<outputDirectory>${project.basedir}/src/main/webapp/xsd</outputDirectory>
<excludes>META-INF/</excludes>
<overWrite>true</overWrite>
</artifactItem>
</artifactItems>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>maven-buildnumber-plugin</artifactId>
<version>0.9.6</version>
<executions>
<execution>
<phase>validate</phase>
<goals>
<goal>create</goal>
</goals>
</execution>
</executions>
<configuration>
<doCheck>true</doCheck>
<doUpdate>true</doUpdate>
</configuration>
</plugin>
<plugin>
<groupId>org.jvnet.jaxb2.maven2</groupId>
<artifactId>maven-jaxb2-plugin</artifactId>
<configuration>
<schemaDirectory>${project.basedir}/src/main/webapp/xsd</schemaDirectory>
<schemaIncludes>
<include>*.xsd</include>
<include>*/*.xsd</include>
</schemaIncludes>
<verbose>true</verbose>
<!-- args>
<arg>-Djavax.xml.validation.SchemaFactory:http://www.w3.org/2001/XMLSchema=org.apache.xerces.jaxp.validation.XMLSchemaFactory</arg>
</args-->
</configuration>
<executions>
<execution>
<goals>
<goal>generate</goal>
</goals>
</execution>
</executions>
</plugin>
我已经尝试使用谷歌搜索,不幸的是我最终得到了一个包含数千个链接的案例,其中没有一个实际上是相关的,所以如果有人知道如何配置发布插件步骤的顺序以确保我将非常感激a在b之前完全执行了。
由于
答案 0 :(得分:1)
执行顺序存在一些问题(例如MNG-3719,MNG-2258)但是对于Maven 2.2.1它应该没问题,并且插件应该以与它们相同的顺序执行在绑定到同一阶段时列在POM中。事实上,你的POM略有修改:
<phase>generate-sources</phase>
id
添加到execution
元素我得到以下输出:
$ mvn generate-sources [INFO] Scanning for projects... [INFO] ------------------------------------------------------------------------ [INFO] Building Q3070794 [INFO] task-segment: [generate-sources] [INFO] ------------------------------------------------------------------------ [INFO] [dependency:unpack {execution: step1-unpack}] [INFO] Configured Artifact: c3p0:c3p0:0.9.1.2:jar [INFO] Unpacking /home/pascal/.m2/repository/c3p0/c3p0/0.9.1.2/c3p0-0.9.1.2.jarto /home/pascal/Projects/stackoverflow/Q3070794/src/main/webapp/xsd with Includes null and excludes:META-INF/ [INFO] [dependency:copy {execution: step1-unpack}] [INFO] Configured Artifact: c3p0:c3p0:0.9.1.2:jar [INFO] Copying c3p0-0.9.1.2.jar to /home/pascal/Projects/stackoverflow/Q3070794/src/main/webapp/xsd/c3p0-0.9.1.2.jar [INFO] [jaxb2:generate {execution: step2-xjc}] [INFO] Started execution. ...
dependency:unpack
和dependency:copy
已完成之前 jaxb2:generate
。除非我遗漏了什么,否则这是预期的结果。用Maven 2.2.1测试。