繁体   English   中英

带有JAXB问题的Maven版本插件

[英]Maven Release Plugin with JAXB issues

我们已经建立了一个使用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>

我尝试使用它进行谷歌搜索,不幸的是我遇到了成千上万个链接的情况,这些链接实际上都不相关,所以如果有人知道如何配置发行插件步骤的顺序以确保完整,我将不胜感激。在执行之前b。

谢谢

执行的顺序存在一些问题(例如MNG-3719MNG-2258 ),但在Maven 2.2.1中应该没问题,并且插件在绑定到同一插件时应以与POM中列出的顺序相同的顺序执行阶段 确实,对您的POM进行了一些修改:

  • 我取消了对依赖插件的<phase>generate-sources</phase>的注释
  • 我在execution元素中添加了id
  • 我为依赖插件使用了“伪”依赖

我得到以下输出:

$ 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.
...

jaxb2:generate 之前完成了dependency:unpackdependency:copy 除非我缺少任何东西,否则这是预期的结果。 用Maven 2.2.1测试。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM